[英]Error passing a char* to printf() call
/ *****读取用户输入的条目* /
int input_string(char *prompt, char *s, int count)
{
char c;
printf(prompt);
while ((c = getchar()) != EOF
&& c != '\n' && count > 0) {
*s = c;
s++;
count--;
}
*s = '\0';
return 0;
}
是c编程的新手。 我正在看一个简单的数据库程序的例子,遇到了这个代码print(prompt); ,我的编译器给出了与此有关的错误,
格式字符串不是字符串文字(可能不安全)[-werror,-wformat-security]。
请帮助停止错误。
就像您的代码中一样,
printf(prompt);
这是不好的 ,因为它开放了字符串格式化攻击的规定。 您可以将其替换为
puts(prompt);
如果您不想在输出中使用任何转换说明符(及相关参数)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.