我習慣了的printf和變數?,然后我就開始使用的scanf函式,這里的代碼(無恥地從fresh2refresh.com被盜)
#include <stdio.h>
int main()
{
char ch;
char str[100];
printf("Enter any character \n");
scanf("%c", &ch);
printf("Entered character is %c \n", ch);
printf("Enter any string ( upto 100 character ) \n");
scanf("%s", &str);
printf("Entered string is %s \n", str);
}
除了它不運行,無論是在 vscode 輸出還是 cmd 上。它甚至不列印第 5 行中的“輸入任何字符”,它表明代碼正在運行,但甚至不接受輸入(并且只有在我單擊“停止代碼運行”按鈕后才會停止)
有小費嗎?
uj5u.com熱心網友回復:
format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[100]’ [-Wformat=] scanf("%s", &str);
字串表示為字符陣列,因此陣列名稱是一個識別符號(隱式轉換為指標)是第一個元素的地址,因此在讀取字串的情況下無需指定“&”。
從警告中可以清楚地看出它無法從 轉換char (*)[100]為char *
uj5u.com熱心網友回復:
線
scanf("%s", &str);
不正確 - 應該是
scanf("
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/386325.html
