1

我有以下代码:

char temp[100] = "";
int a, b;

sprintf(temp, "%02c|", "A");

sprintf(tmp, "%02s|", ((b== a) ? ("??") : ("__")));

但是当我 lint 时,它显示警告 566:不一致或冗余格式 char 'c',问题是什么以及如何解决?

我尝试:1)将“A”更改为“A”并使用“%02c|” 2) 改变“%02c|” 到“%02s|” 并保持“A”,仍然是同样的警告

4

3 回答 3

2

关于不一致是正确的:

sprintf(temp, "%02c|", "A");

那应该是'A'要匹配的字符文字%c,而不是字符串文字"A"。如果要保留"A",请%s改用。

于 2013-06-14T18:12:42.230 回答
2

%c占位符接受 a ,而char不是指向 a 的指针char
尝试使用'A'而不是"A".

此外,建议始终使用snprintf而不是sprintf.

于 2013-06-14T18:13:24.957 回答
0

您需要更改"A"'A',或将格式更改为%s

于 2013-06-14T18:12:42.963 回答