这是一个非常微不足道的问题,但我不知道为什么我没有得到正确的输出。这是我想要做的:
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;
}
在输出中,除了第一个索引外,所有缓冲区都被正确打印。我想在缓冲区的开头打印 1,2,3 等等,但它不起作用。请帮忙
最佳答案
您需要将该数字转换为字符。一种廉价的方法是:
sendBuffer[0] = '0' + count;
如果你需要,你会想要转向更复杂的计划。例如,如果您想将整数 42 转换为字符串“42”,您可以说:
#define ENOUGH ((CHAR_BIT * sizeof(int) - 1) / 3 + 2)
char str[ENOUGH];
snprint(str, sizeof str, "%d", 42);
ENOUGH
归功于 caf 。