【问题标题】:C program warning: format not a string literal and no format argumentsC 程序警告:格式不是字符串文字,也没有格式参数
【发布时间】:2015-01-27 03:26:35
【问题描述】:

我正在使用 -

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);
 ...
}

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

如何解决这个问题?

【问题讨论】:

标签: c ubuntu gcc char printf


【解决方案1】:

你需要改变你的

fprintf(fp, str);

fprintf(fp, "%s", str);
             ^
             |

在您的代码中,您缺少格式说明符 "%s"

请查看fprintf() here 的手册页了解更多详情。

【讨论】:

  • @KK 哦,是吗?如果你能告诉我原因,你会很高兴的。
【解决方案2】:

如果你想打印一个常量字符串,不要使用fprintf()

使用fputs(str, fp)

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

【讨论】:

    猜你喜欢
    • 2010-12-13
    • 2011-05-24
    • 2013-04-07
    • 1970-01-01
    • 2014-12-23
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    相关资源
    最近更新 更多