# 輸入 ## <cstdio>/<stdio.h>的scanf() C 語言中的 `scanf` 函式 `scanf` 函式是 C 語言中用於從標準輸入(通常是鍵盤)讀取資料並存儲到變數中的函式。 它根據指定的格式來解析輸入的資料。 ### NOTE:**注意標頭檔** ### 基本語法 ```cpp= scanf("格式控制字串", &變數1, &變數2, ...); ``` * **格式控制字串**:由格式規範組成,用來指定輸入的資料類型。 常見的格式規範有: | 格式控制字串 | 作用 | | -------- | -------- | | %d | 讀取整數 | | %f | 讀取浮點數 | | %c | 讀取單個字符 | | %s | 讀取字符串 | &變數1, &變數2, ...:是要存放輸入數據的變數的地址。 注意,這裡要使用**取址運算符** &(這個就有點難懂了,要道後面才會教喔), 因為 `scanf` 函式需要知道變數在内存中的位置才能將讀取的數據存儲進去。 eg. ```cpp= #include <stdio.h> int main() { int age; float height; char gender; printf("請輸入您的年齡:"); scanf("%d", &age); printf("請輸入您的身高:"); scanf("%f", &height); printf("請輸入您的性別:"); scanf(" %c", &gender); // 注意空格,用於吸收前面的換行符 printf("您的年齡是 %d 歲,身高是 %.2f 公分,性別是 %c。\n", age, height, gender); return 0; } ``` ### scanf 的注意事項 1. **格式控制字串**:**必須與輸入的數據類型嚴格匹配**,否則可能會導致未定義的行為。 2. **空格和換行符**:`scanf` 會**自動跳過輸入中的空格和換行符**,除非你使用特定的格式規範來讀取空格或換行符。 3. **錯誤處理**:在使用 `scanf` 時,最好加上錯誤處理,以確保程序沒問題。 可以使用 `if` 語句判斷 `scanf` 的返回值,來檢查輸入是否成功。 ### 小結 `scanf` 函式是 C 語言中非常常用的輸入函式,但使用時需要注意一些細節。 通過掌握 `scanf` 的用法,你可以更好地提高程序的互動性。