我正在使用 -
char str[200];
...
sprintf(str,"%s", val)
msg(str);
sprintf(str, "%s: %s",timestr,"\n recv -");
msg(str);
...
}
void msg(const char str[])
{
...
fprintf(fp, str);
...
}
警告:格式不是字符串文字而没有格式参数
如何解决这个问题?
答案 0 :(得分:3)
您需要更改
fprintf(fp, str);
到
fprintf(fp, "%s", str);
^
|
在您的代码中,您错过了格式说明符"%s"
。
请查看fprintf()
here的手册页以获取更多详细信息。
答案 1 :(得分:2)
如果要打印常量字符串,请不要使用fprintf()
。
如果您认为必须使用fprintf()
,请添加格式字符串,即使用fprintf(fp, "%s", str);
。