C 使用者輸入
使用者輸入
您已經知道 printf()
用於在 C 語言中輸出值。
要獲取使用者輸入,您可以使用 scanf()
函式。
示例
輸出使用者輸入的數字
// 建立一個將儲存我們從使用者那裡獲取的數字的整數變數
int myNum;
// 要求使用者輸入一個數字
printf("輸入一個數字:\n");
// 獲取並儲存使用者輸入的數字
scanf("%d", &myNum);
// 輸出使用者輸入的數字
printf("您的數字是:%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()
獲取多個單詞。