这是一个非常微不足道的问题,但我不知道为什么我没有得到正确的输出.这是我想要做的:
char sendBuffer[1000];
int count=0:
while(count<10)
{
sendBuffer[0]=count;
sendBuffer[1]='a';
sendBuffer[2]='b';
sendBuffer[3]='c';
sendBuffer[4]='\0';
printf(%s,sendBuffer);
count=count+1;
}
Run Code Online (Sandbox Code Playgroud)
在输出中,除第一个索引外,所有缓冲区都正确打印.我希望在缓冲区的开头打印1,2,3等,但它不起作用.请帮忙
您需要将该数字转换为字符.一个便宜的方法是:
sendBuffer[0] = '0' + count;
Run Code Online (Sandbox Code Playgroud)
无论如何要显示大于9的整数
如果您需要,您将需要转向更精细的方案.例如,如果要将整数42转换为字符串"42",您可以说:
#define ENOUGH ((CHAR_BIT * sizeof(int) - 1) / 3 + 2)
char str[ENOUGH];
snprint(str, sizeof str, "%d", 42);
Run Code Online (Sandbox Code Playgroud)
信用ENOUGH去咖啡馆.