我有以下代码:
char temp[100] = "";
int a, b;
sprintf(temp, "%02c|", "A");
sprintf(tmp, "%02s|", ((b== a) ? ("??") : ("__")));
但是当我说它时,它会显示警告566:格式不一致或冗余char'c',问题是什么以及如何修复它?
我试图: 1)将“A”更改为“A”并使用“%02c |” 2)改变“%02c |”到“%02s |”并保持“A”,仍然是相同的警告
答案 0 :(得分:2)
关于不一致是正确的:
sprintf(temp, "%02c|", "A");
这应该是与'A'
匹配的字符文字%c
,而不是字符串文字"A"
。如果您想保留"A"
,请改用%s
。
答案 1 :(得分:2)
%c
占位符带有char
,而不是指向char
的指针。
尝试使用'A'
代替"A"
。
此外,建议始终使用snprintf
代替sprintf
。
答案 2 :(得分:0)
您需要将"A"
更改为'A'
,或将格式更改为%s
。