[英]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.