我在64位linux上使用sprintf的func。当我测试sprintf或snprintf写的字符串时,会发生奇怪的事情。我用它的方式:
char s[256];
int current=0;
for (int i=0; i<5; i++)
{
current += sprintf(s+current, "d", i);
}
printf("string is %s \n", s);
我得到的是:string是ddddd,如果我将sprintf(s,“d”,i)改为“c”或“lf”,我得到的只是ccccc或lflflflflf。有人对此有任何线索吗?非常感谢!
答案 0 :(得分:6)
我认为您想使用%d而不是d
请参阅man 3 printf
答案 1 :(得分:2)
你应该在命令行上找到man printf
。它会告诉你,你的格式字符串应该是&#34;%d&#34;