標頭檔案
<cstdio> (stdio.h)
C 語言的標準輸入輸出庫,用於執行輸入/輸出操作。
C++ 也可以使用 **C** **St**andard **Input and **Output Library (cstdio,在 C 語言中稱為stdio.h)執行輸入輸出操作。該庫使用所謂的“流”來操作物理裝置,例如鍵盤、印表機、終端或系統支援的任何其他型別的檔案。流是一種抽象,可以以統一的方式與這些裝置進行互動;所有流都具有相似的屬性,而與它們關聯的物理介質的特性無關。
在cstdio庫中,流被處理為 FILE 物件的指標。指向 FILE 物件的指標唯一標識一個流,並作為涉及該流的操作的引數。
還有三個標準流:stdin、stdout 和 stderr,它們是使用該庫的所有程式自動建立和開啟的。
流的屬性
流具有一些屬性,這些屬性定義了可以在其上使用的函式以及這些函式如何處理透過它們輸入或輸出的資料。其中大多數屬性是在使用 fopen 函式將流與檔案關聯(開啟)時定義的。
- 讀/寫訪問
- 指定流是否對與其關聯的物理介質具有讀或寫訪問許可權(或兩者兼有)。
- 文字/二進位制
- 文字流被認為是表示一組文字行,每行都以換行符結尾。根據應用程式執行的環境,文字流可能會發生某些字元轉換,以使某些特殊字元適應該環境的文字檔案規範。另一方面,二進位制流是寫入或從物理介質讀取的字元序列,沒有轉換,與寫入或從流讀取的字元具有一對一的對應關係。
- 緩衝區
- 緩衝區是資料在被物理讀取或寫入關聯檔案或裝置之前累積的記憶體塊。流可以是“全緩衝”、“行緩衝”或“無緩衝”。對於全緩衝流,當緩衝區填滿時會讀取/寫入資料;對於行緩衝流,這發生在遇到換行符時;對於無緩衝流,字元應儘快讀取/寫入。
- 方向性
- 開啟時,流沒有方向性。一旦在流上執行了輸入/輸出操作,它們就會變成“位元組導向”或“寬導向”,具體取決於執行的操作(通常,在<cstdio>中定義的函式是“位元組導向”的,而在 <cwchar> 中定義的函式是“寬導向”的)。有關更多資訊,請參閱 cwchar。