-1

我在 64 位 linux 上使用 sprintf 的功能。当我测试由 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);

我得到的只是:字符串是 ddddd,如果我将 sprintf(s,"d", i) 更改为 "c" 或 "lf",我得到的只是 ccccc 或 lflflflflf。有人对此有任何线索吗?非常感谢!

4

2 回答 2

6

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

man 3 printf

于 2012-07-27T17:31:15.923 回答
2

你应该man printf在命令行上查找。它会告诉你,你的格式字符串应该是“%d”

于 2012-07-27T17:30:57.263 回答