緩衝分為兩種:
完全緩衝:緩衝區滿時被清空(內容發往目的地)
行緩衝:遇到乙個換行字元時將被清空緩衝區
低階i/o是使用宿主作業系統的基本工具來處理檔案,由於系統的差異,所以無法建立乙個通用的低階i/o標準庫。因此c採用的是標準i/o包,級別更高,系統之間的差異由特定的c實現來處理,相當於提供了乙個標準的介面
從概念上講,c程式處理的是乙個流而不是直接處理檔案。
流(stream)是乙個理想化的資料流,實際的輸入或輸出對映到這個資料流
c對待輸入和輸出裝置與其對待儲存裝置上的普通檔案相同,鍵盤的輸入由乙個被稱為stdin的流表示,到螢幕上的輸出由stdout流表示
檢測檔案結尾的兩種方式:
在檔案中放置乙個特殊字元來標誌結尾
讓作業系統儲存檔案的大小資訊
c語言統一處理方法:讓getchar函式在到達檔案末尾時返回乙個特殊值eof,而不管作業系統如何檢測檔案結尾的
令程式和檔案一同工作的方式:
明確使用開啟檔案、關閉檔案、讀檔案、寫檔案等專用函式
使用乙個設計用於與鍵盤和螢幕共同工作的程式,但使用不同通道重定向輸入輸出,即將stdin流重新分配至檔案
<
是unix的重定向運算子,將檔案和stdin流關聯起來,把檔案內容引導至程式,程式本身不關心輸入是來自檔案還是鍵盤
>
將stdout從顯示裝置重定向於檔案,如果檔案已經存在,通常會刪除檔案然後用新檔案代替之
注意:重定向運算子的順序無關緊要
不要對同一命令的輸入輸出使用相同的檔名
輸入輸出的檔案只能是乙個
只能用於乙個可執行程式與另乙個資料檔案的連線
空格不是必須的
getchar和scanf不能很好的混合,因為getchar讀取每個字元,而scanf讀取數字時則會跳過空格、製表符和換行符
當scanf輸入失敗時,就會將錯誤的輸入留在輸入佇列中,此時可以用getchar來逐個字元讀取輸入
乙個經典的輸入確認例子:
int get_int(void)
} return input;
}
字元輸入 輸出和輸入驗證
本屆講解通用標準的i o函式的使用說明 單字元i o getchar 和putchar 這個是單字元每次只處理乙個字元,緩衝區 ansi c和後續的c標準都規定輸入時緩衝的,最初的k r c吧這個jue決定權交給了編寫者。一些計算機不允許無緩衝輸入,但又的計算機支援,如 ibm pc 支援 通過co...
字元輸入 輸出和輸入驗證
注釋 重定位讓你能夠用鍵盤輸入程式檔案,程式需測試檔案的末尾。重定向是乙個命令概念,因為要在命令列輸入特殊的符號發出指令。file eof.c 開啟乙個檔案並顯示該檔案 include include 為了使用exit int main void getc fp 從開啟的檔案中獲取乙個字元 whil...
字元輸入輸出流
注意 在寫出的時候一定要注意要記得清空緩衝區!字元輸入流 filereader 跟fileinputstream使用的方式和方法一樣 不過返回的資料型別為 char 型別的,所以我們要用 char 字串陣列接受 方法close 關閉輸入流 int read 從輸入流讀取下一字元 int read c...