sprintf总是把格式写成字符串,错误的64位linux?

时间:2012-07-27 17:28:16

标签: c linux

我在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。有人对此有任何线索吗?非常感谢!

2 个答案:

答案 0 :(得分:6)

我认为您想使用%d而不是d

请参阅man 3 printf

答案 1 :(得分:2)

你应该在命令行上找到man printf。它会告诉你,你的格式字符串应该是&#34;%d&#34;