各類資料學習下載合集
??https://pan.quark.cn/s/8c91ccb5a474??
C 語言字符輸入:掌握 getchar 和 scanf 的用法與陷阱
你好!在 C 語言編程中,與用戶進行交互最基本的方式就是通過標準輸入和標準輸出。我們之前探討了如何使用 ??printf?
? 和 ??putchar?
? 進行輸出,那么如何從鍵盤接收用戶的輸入呢?
C 語言標準庫提供了多種輸入函數,其中最常用、也是處理字符輸入的基礎函數是 ??getchar?
? 和 ??scanf?
?。雖然它們都能用于接收字符,但用法和適用場景有所不同。理解它們的特性,特別是 ??scanf?
? 在處理字符輸入時可能遇到的“陷阱”,對于編寫健壯的 C 程序至關重要。
今天,我們就來深入學習這兩個函數,并通過詳細的代碼示例來掌握它們的用法。
1. 輸入函數概述:??getchar?
? vs. ??scanf?
?
C 語言中用于從標準輸入讀取數據的函數有很多,但就字符輸入而言,我們主要關注:
- ?
?getchar()?
?: 一個簡單直接的函數,用于讀取單個字符。 - ?
?scanf()?
?: 一個功能強大的格式化輸入函數,可以讀取多種類型的數據,包括字符。
讓我們分別來看它們的詳細用法。
2. ??getchar()?
?:簡單直接的單字符讀取器
2.1 作用與用法
??getchar()?
? 函數用于從標準輸入(通常是鍵盤)讀取一個字符。它不需要任何參數,并且會返回讀取到的字符(以 ??int?
? 類型返回,以便能表示特殊的 ??EOF?
? 文件結束標志)。
要使用 ??getchar()?
? 讀取的字符,你需要將其返回值賦值給一個變量來存儲。
2.2 代碼示例:使用 ??getchar?
? 讀取單個字符
#include <stdio.h> // 引入標準輸入輸出庫int main() {printf("請輸入一個字符并按回車:");// 調用 getchar() 讀取一個字符,并將其賦值給 my_char 變量int my_char_int = getchar(); // getchar() 返回 int 類型// 將讀取到的 int 強制轉換為 char 類型以便打印char my_char = (char)my_char_int;printf("你輸入的字符是: %c\n", my_char);printf("該字符的 ASCII 值為: %d\n", my_char_int); // 打印原始 int 值return 0; // 程序成功結束
}
2.3 編譯與運行結果
將上面的代碼保存為 ??getchar_example.c?
? 文件,然后編譯運行:
gcc getchar_example.c -o getchar_example
./getchar_example
運行示例 1:
請輸入一個字符并按回車:A <-- 用戶輸入 A,然后按回車
你輸入的字符是: A
該字符的 ASCII 值為: 65
運行示例 2&