選單
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

C 使用者輸入


使用者輸入

您已經知道 printf() 用於在 C 語言中輸出值

要獲取使用者輸入,您可以使用 scanf() 函式。

示例

輸出使用者輸入的數字

// 建立一個將儲存我們從使用者那裡獲取的數字的整數變數
int myNum;

// 要求使用者輸入一個數字
printf("輸入一個數字:\n");

// 獲取並儲存使用者輸入的數字
scanf("%d", &myNum);

// 輸出使用者輸入的數字
printf("您的數字是:%d", myNum);
執行示例 »

scanf() 函式接受兩個引數:變數的格式說明符(上面示例中的 %d)和引用運算子(&myNum),它儲存變數的記憶體地址。

提示:您將在下一章瞭解更多關於記憶體地址函式的知識。


多個輸入

scanf() 函式也允許多個輸入(以下示例中為整數和字元)。

示例

// 建立一個 int 和一個 char 變數
int myNum;
char myChar;

// 要求使用者輸入一個數字和字元
printf("輸入一個數字和字元,然後按回車鍵:\n");

// 獲取並儲存使用者輸入的數字和字元
scanf("%d %c", &myNum, &myChar);

// 列印數字
printf("您的數字是:%d\n", myNum);

// 列印字元
printf("您的字元是:%c\n", myChar);
執行示例 »

獲取字串輸入

您也可以獲取使用者輸入的字串。

示例

輸出使用者的姓名

// 建立一個字串
char firstName[30];

// 要求使用者輸入一些文字
printf("請輸入您的名字:\n");

// 獲取並儲存文字
scanf("%s", firstName);

// 輸出文字
printf("你好 %s", firstName);
執行示例 »

注意:scanf() 中處理字串時,必須指定字串/陣列的大小(我們在示例中使用了非常大的數字 30,但至少這樣可以確保它能儲存足夠的字元來存放名字),並且不需要使用引用運算子(&)。

但是,scanf() 函式有一些限制:它將空格(空白字元、製表符等)視為終止符,這意味著它只能顯示一個單詞(即使您輸入了多個單詞)。例如:

示例

char fullName[30];

printf("請輸入您的全名:\n");
scanf("%s", &fullName);

printf("你好 %s", fullName);

// 輸入您的全名:John Doe
// 你好 John

從上面的示例中,您期望程式列印“John Doe”,但它只打印了“John”。

因此,在處理字串時,我們通常使用 fgets() 函式來讀取一行文字。請注意,您必須包含以下引數:字串變數的名稱、sizeof(string_name),以及 stdin

示例

char fullName[30];

printf("請輸入您的全名:\n");
fgets(fullName, sizeof(fullName), stdin);

printf("你好 %s", fullName);

// 輸入您的全名:John Doe
// 你好 John Doe
執行示例 »

使用 scanf() 函式獲取單個單詞作為輸入,並使用 fgets() 獲取多個單詞。


×

聯絡銷售

如果您想將 W3Schools 服務用於教育機構、團隊或企業,請傳送電子郵件給我們
sales@w3schools.com

報告錯誤

如果您想報告錯誤,或想提出建議,請傳送電子郵件給我們
help@w3schools.com

W3Schools 經過最佳化,旨在方便學習和培訓。示例可能經過簡化,以提高閱讀和學習體驗。教程、參考資料和示例會不斷審查,以避免錯誤,但我們無法保證所有內容的完全正確性。使用 W3Schools 即表示您已閱讀並接受我們的使用條款Cookie 和隱私政策

版權所有 1999-2024 Refsnes Data。保留所有權利。W3Schools 由 W3.CSS 提供支援