簡體   English   中英

sprintf總是將格式寫入字符串,在64位linux上錯誤嗎?

[英]sprintf always write format into string, wrong on 64bit linux?

我在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);

我得到的是:string是ddddd,如果我將sprintf(s,“ d”,i)更改為“ c”或“ lf”,則得到的只是ccccc或lflflflflf。 有人對此有任何線索嗎? 非常感謝!

我認為您想使用%d而不是d

男人3 printf

您應該在命令行中查看man printf 它會告訴您,您的格式字符串應為“%d”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM