C++:cstdio 頭文件詳解

<cstdio> (stdio.h)

header


C庫執行輸入/輸出操作:

輸入和輸出操作也可以在C++實現,通過使用C標準輸入和輸出庫(cstdio,在C語言中稱爲stdio.h)。

這個庫使用流來操作物理設備如鍵盤,打印機,終端或者系統支持的任何其他類型的文件。

流是一種以統一的方式與這些交互的抽象; 所有流都具有相似的屬性,與它們所關聯的物理介質的各個特徵無關。

流在cstdio庫中作爲指向 FILE 的指針處理對象。一個指向FILE對象的指針唯一地標識一個流,並在涉及該流的操作中用作參數。

在使用庫的時候會自動創建三個標準流:stdinstdout and stderr


流屬性

Streams有一些屬性可以定義可以在它們上使用哪些函數以及它們如何通過它們處理數據輸入或輸出。大多數這些屬性是在流與使用 fopen 函數的文件(已打開)關聯時定義的:

讀/寫訪問 | 文字/二進制 | 緩衝 | 方向

指定流是否對與其關聯的物理介質具有讀取或寫入訪問權限(或兩者)。

文本流被認爲代表一組文本行,每行以新行字符結尾。根據運行應用程序的環境,可能會對文本流進行一些字符轉換,以使某些特殊字符適應環境的文本文件規範。另一方面,二進制流是從物理介質寫入或讀取的字符序列,沒有翻譯,與讀取或寫入流的字符一一對應。

緩衝區是一塊存儲器,其中數據在物理讀取或寫入相關文件或設備之前被累積。流可以是完全緩衝,行緩衝或無緩衝。在完全緩衝的流上,在填充緩衝區時讀取/寫入數據,在線路緩衝的流上發生這種情況,當遇到換行符時,在無緩衝的流上,字符意圖儘快讀取/寫入。

在打開時,流沒有方向。一旦對它們執行輸入/輸出操作,它們就會變爲byte-oriented或wide-oriented,具體取決於所執行的操作(通常,<cstdio>中定義的函數是byte-oriented,而<cwchar>中的函數是wide-oriented)。有關詳細信息,請參閱cwchar


指示符

Streams具有確定的內部指示符,用於指定其當前狀態,並影響對其執行的某些輸入和輸出操作的行爲:

錯誤指示符 當與流相關的操作發生錯誤時,將設置此指示符。可以使用ferror功能檢查此指示器,並可以通過調用clearerrfreopenrewind來重置此指示器。
文件結束指示符 設置時,表示使用流執行的上次讀取或寫入操作已到達文件結尾。可以使用feof函數進行檢查,可以通過調用clearerrfreopen或調用任何重定位函數(rewindfseekfsetpos)來重置。
位置指示符 它是每個流的內部指針,指向下一個I/O操作中要讀取或寫入的下一個字符。它的值可以通過ftellfgetpos函數獲得,並且可以使用rewindingfseekfsetpos重新定位函數來更改。

函數

文件操作:

(function )

remove

刪除文件

rename

重命名文件

tmpfile

打開臨時文件

tmpnam

生成臨時文件名


文件訪問:

(function )

fclose

關閉打開的文件流

fflush

刷新流

fopen

打開文件流

freopen

使用不同的文件或模式重新打開流

setbuf

設置緩衝流

setvbuf

改變緩衝流


格式化輸入/輸出:

(function )

fprintf

將格式化數據寫入流

fscanf

從流中讀取格式化數據

printf

將格式化數據打印到stdout

scanf

從stdin讀取格式化數據

snprintf 

將格式化輸出寫入一定大小的緩衝區

sprintf

將格式化數據寫入字符串

sscanf

從字符串讀取格式化數據

vfprintf

將格式化數據從變量參數列表寫入流

vfscanf 

將格式化數據從流讀入變量參數列表

vprintf

將格式化數據從變量參數列表打印到stdout

vscanf 

將格式化數據讀入變量參數列表

vsnprintf 

將格式化數據從變量參數列表寫入一定大小的緩衝區

vsprintf

將格式化數據從變量參數列表寫入字符串

vsscanf 

將格式化數據從字符串讀入變量參數列表


字符輸入/輸出:

(function )

fgetc

從流中獲取字符

fgets

從流中獲取字符串

fputc

將字符寫入流

fputs

將字符串寫入流

getc

從流中獲取字符

getchar

從stdin 中獲取字符

gets

從stdin 中獲取字符串

putc

將字符寫入流

putchar

將字符寫入stdout

puts

將字符串寫入stdout

ungetc

將字符放回流中


直接輸入/輸出:

(function )

fread

從流中讀取數據塊

fwrite

寫數據塊到流


文件定位:

(function )

fgetpos

獲取流中的當前位置

fseek

重新定位流位置指示符

fsetpos

設置流的位置指示符

ftell

獲取流中的當前位置

rewind

將流的位置設置爲開頭


錯誤處理:

(function )

clearerr

清除錯誤指示符

feof

檢查文件結束指示符

ferror

檢查錯誤指示符

perror

打印錯誤消息


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章