如何修复C中的不一致或冗余格式char'c'?

时间:2013-06-14 18:10:54

标签: c printf

我有以下代码:

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”,仍然是相同的警告

3 个答案:

答案 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