int main()
{
int t = 5;
char buf[100];
sprintf(buf, "%% Hello, world %d times! ", t);
printf(buf);
return 0;
}
期望顯示為:% Hello, world 5 times!
實(shí)際顯示為:Hello, world 5 times!
分析: sprintf printf 遇到%(%會被忽略)會查看后的字符,如果后面是d, f等,會取后面的值,其它如%等,不作處理.
上面改為sprintf(buf, "%%%% Hello, world %d times! ", t);