<cstdio> (stdio.h)
header
C庫執行輸入/輸出操作:
輸入和輸出操作也可以在C++實現,通過使用C標準輸入和輸出庫(cstdio,在C語言中稱爲stdio.h)。
這個庫使用流來操作物理設備如鍵盤,打印機,終端或者系統支持的任何其他類型的文件。
流是一種以統一的方式與這些交互的抽象; 所有流都具有相似的屬性,與它們所關聯的物理介質的各個特徵無關。
流在cstdio庫中作爲指向 FILE 的指針處理對象。一個指向FILE對象的指針唯一地標識一個流,並在涉及該流的操作中用作參數。
在使用庫的時候會自動創建三個標準流:stdin, stdout and stderr;
流屬性
Streams有一些屬性可以定義可以在它們上使用哪些函數以及它們如何通過它們處理數據輸入或輸出。大多數這些屬性是在流與使用 fopen 函數的文件(已打開)關聯時定義的:
讀/寫訪問 | 文字/二進制 | 緩衝 | 方向
指定流是否對與其關聯的物理介質具有讀取或寫入訪問權限(或兩者)。
文本流被認爲代表一組文本行,每行以新行字符結尾。根據運行應用程序的環境,可能會對文本流進行一些字符轉換,以使某些特殊字符適應環境的文本文件規範。另一方面,二進制流是從物理介質寫入或讀取的字符序列,沒有翻譯,與讀取或寫入流的字符一一對應。
緩衝區是一塊存儲器,其中數據在物理讀取或寫入相關文件或設備之前被累積。流可以是完全緩衝,行緩衝或無緩衝。在完全緩衝的流上,在填充緩衝區時讀取/寫入數據,在線路緩衝的流上發生這種情況,當遇到換行符時,在無緩衝的流上,字符意圖儘快讀取/寫入。
在打開時,流沒有方向。一旦對它們執行輸入/輸出操作,它們就會變爲byte-oriented或wide-oriented,具體取決於所執行的操作(通常,<cstdio>中定義的函數是byte-oriented,而<cwchar>中的函數是wide-oriented)。有關詳細信息,請參閱cwchar。
指示符
Streams具有確定的內部指示符,用於指定其當前狀態,並影響對其執行的某些輸入和輸出操作的行爲:
錯誤指示符 | 當與流相關的操作發生錯誤時,將設置此指示符。可以使用ferror功能檢查此指示器,並可以通過調用clearerr,freopen或rewind來重置此指示器。 |
文件結束指示符 | 設置時,表示使用流執行的上次讀取或寫入操作已到達文件結尾。可以使用feof函數進行檢查,可以通過調用clearerr或freopen或調用任何重定位函數(rewind,fseek和fsetpos)來重置。 |
位置指示符 | 它是每個流的內部指針,指向下一個I/O操作中要讀取或寫入的下一個字符。它的值可以通過ftell和fgetpos函數獲得,並且可以使用rewinding,fseek和fsetpos重新定位函數來更改。 |
函數
文件操作:
(function )
刪除文件
重命名文件
打開臨時文件
生成臨時文件名
文件訪問:
(function )
關閉打開的文件流
刷新流
打開文件流
使用不同的文件或模式重新打開流
設置緩衝流
改變緩衝流
格式化輸入/輸出:
(function )
將格式化數據寫入流
從流中讀取格式化數據
將格式化數據打印到stdout
從stdin讀取格式化數據
將格式化輸出寫入一定大小的緩衝區
將格式化數據寫入字符串
從字符串讀取格式化數據
將格式化數據從變量參數列表寫入流
將格式化數據從流讀入變量參數列表
將格式化數據從變量參數列表打印到stdout
將格式化數據讀入變量參數列表
將格式化數據從變量參數列表寫入一定大小的緩衝區
將格式化數據從變量參數列表寫入字符串
將格式化數據從字符串讀入變量參數列表
字符輸入/輸出:
(function )
從流中獲取字符
從流中獲取字符串
將字符寫入流
將字符串寫入流
從流中獲取字符
從stdin 中獲取字符
從stdin 中獲取字符串
將字符寫入流
將字符寫入stdout
將字符串寫入stdout
將字符放回流中
直接輸入/輸出:
(function )
從流中讀取數據塊
寫數據塊到流
文件定位:
(function )
獲取流中的當前位置
重新定位流位置指示符
設置流的位置指示符
獲取流中的當前位置
將流的位置設置爲開頭
錯誤處理:
(function )
清除錯誤指示符
檢查文件結束指示符
檢查錯誤指示符
打印錯誤消息