[英]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
您應該在命令行中查看man printf
。 它會告訴您,您的格式字符串應為“%d”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.