標頭檔案

<cstdio> (stdio.h)

C 語言的標準輸入輸出庫,用於執行輸入/輸出操作。
C++ 也可以使用 **C** **St**andard **Input and **Output Library (cstdio,在 C 語言中稱為stdio.h)執行輸入輸出操作。該庫使用所謂的“流”來操作物理裝置,例如鍵盤、印表機、終端或系統支援的任何其他型別的檔案。流是一種抽象,可以以統一的方式與這些裝置進行互動;所有流都具有相似的屬性,而與它們關聯的物理介質的特性無關。

cstdio庫中,流被處理為 FILE 物件的指標。指向 FILE 物件的指標唯一標識一個流,並作為涉及該流的操作的引數。

還有三個標準流:stdinstdoutstderr,它們是使用該庫的所有程式自動建立和開啟的。

流的屬性

流具有一些屬性,這些屬性定義了可以在其上使用的函式以及這些函式如何處理透過它們輸入或輸出的資料。其中大多數屬性是在使用 fopen 函式將流與檔案關聯(開啟)時定義的。
讀/寫訪問
指定流是否對與其關聯的物理介質具有讀或寫訪問許可權(或兩者兼有)。
文字/二進位制
文字流被認為是表示一組文字行,每行都以換行符結尾。根據應用程式執行的環境,文字流可能會發生某些字元轉換,以使某些特殊字元適應該環境的文字檔案規範。另一方面,二進位制流是寫入或從物理介質讀取的字元序列,沒有轉換,與寫入或從流讀取的字元具有一對一的對應關係。
緩衝區
緩衝區是資料在被物理讀取或寫入關聯檔案或裝置之前累積的記憶體塊。流可以是“全緩衝”、“行緩衝”或“無緩衝”。對於全緩衝流,當緩衝區填滿時會讀取/寫入資料;對於行緩衝流,這發生在遇到換行符時;對於無緩衝流,字元應儘快讀取/寫入。
方向性
開啟時,流沒有方向性。一旦在流上執行了輸入/輸出操作,它們就會變成“位元組導向”或“寬導向”,具體取決於執行的操作(通常,在<cstdio>中定義的函式是“位元組導向”的,而在 <cwchar> 中定義的函式是“寬導向”的)。有關更多資訊,請參閱 cwchar

指示器

流具有某些內部指示器,用於指定它們的當前狀態,並影響在它們上執行的某些輸入和輸出操作的行為。
錯誤指示器
在與流相關的操作中發生錯誤時設定此指示器。可以使用 ferror 函式檢查此指示器,可以透過呼叫 clearerrfreopenrewind 來重置它。
檔案結束指示器
設定時,表示使用流執行的最後一次讀寫操作已到達“檔案結束”。可以使用 feof 函式檢查它,可以透過呼叫 clearerrfreopen,或透過呼叫任何重新定位函式(rewindfseekfsetpos)來重置它。
位置指示器
它是每個流的一個內部指標,指向下一個 I/O 操作中要讀取或寫入的下一個字元。可以使用 ftellfgetpos 函式獲取其值,並可以使用重新定位函式 rewindfseekfsetpos 來更改它。

函式

檔案操作:

檔案訪問:

格式化輸入/輸出:

字元輸入/輸出:

直接輸入/輸出:

檔案定位:

錯誤處理:

另外:_IOFBF_IOLBF_IONBF(與 setvbuf 一起使用)
SEEK_CURSEEK_ENDSEEK_SET(與 fseek 一起使用)。

型別