首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C Primer Plus 學習筆記:第八章 字符輸入輸出與輸入驗證

     編輯:關於C語言

第八章 字符輸入/輸出和輸入確認

8.1 單字符 I/O:getchar() 與 putchar()

詳見第七章 7.1.1 節。

8.2 緩衝區

  • 無緩衝/直接輸入:字符立即回顯,對程序立即可用。
  • 緩衝輸入:字符收集存放於臨時緩衝區,按下回車鍵(換行符)後整塊傳給程序。
    優點:可用鍵盤編輯鍵修正輸入錯誤。
  • 行緩衝:遇換行符清空緩衝區。標準輸入通常為行緩衝。

8.3 終止鍵盤輸入

8.3.1 文件、流與鍵盤

  • 文件:存儲信息的存儲區域。
  • 流:理想化的數據流,實際 I/O 映射到此流。C 程序操作流而非直接操作文件。

8.3.2 文件結尾 (EOF)

  • 檢測 EOF 兩種方式:文件中特殊標誌字符、或系統記錄文件大小。
  • C 統一處理:getchar() 讀到文件末尾返回特殊值 EOF(通常定義為 -1,在 stdio.h 中)。
  • 變量接收 getchar() 返回值必須聲明為 int 類型,因 char 可能為無符號(0-255),無法表示 -1。

8.4 創建友好的用戶界面

常見 Bug:scanf("%c", &ch) 讀取用戶輸入 'n' 後,緩衝區殘留換行符 \n,下一次調用直接讀到 \n 導致邏輯錯誤。
解決方案:用循環丟棄行尾剩餘字符:
while (getchar() != '\n') continue;

ANSI C 規定標準輸入為緩衝輸入,編程時務必注意換行符的處理。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved