簡體   English   中英

將char *傳遞給printf()調用時出錯

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM