C程序警告:格式不是字符串文字,也没有格式参数

C程序警告:格式不是字符串文字,也没有格式参数,c,ubuntu,gcc,char,printf,C,Ubuntu,Gcc,Char,Printf,我正在使用- 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); ... } 警告:格式不是字符串文字,也没有格式参数 如何解决此问题?如果要打印常量字符串,请不要使用fprintf() 使用 如果您觉得必须使

我正在使用-

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);
 ...
}
警告:格式不是字符串文字,也没有格式参数

如何解决此问题?

如果要打印常量字符串,请不要使用
fprintf()

使用


如果您觉得必须使用
fprintf()
,请添加格式化字符串,即使用
fprintf(fp,“%s”,str)

您需要更改

fprintf(fp, str);

在代码中,缺少格式说明符
“%s”


有关详细信息,请查看
fprintf()
的手册页。

@KK-oh是吗?如果你能告诉我原因,那就太好了。可能是
fprintf(fp, "%s", str);
             ^
             |