-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 に答える