檔案輸入/輸出
來自 cppreference.com
< c
<stdio.h> 標頭檔案提供了通用的檔案操作支援,並提供了窄字元輸入/輸出功能。
<wchar.h> 標頭檔案提供了寬字元輸入/輸出功能。
I/O 流由 FILE 型別的物件表示,只能透過 FILE* 型別的指標進行訪問和操作。每個流都與一個外部物理裝置(檔案、標準輸入流、印表機、序列埠等)相關聯。
目錄 |
[編輯] 型別
定義於標頭檔案
<stdio.h> | |
物件型別,能夠儲存控制 C I/O 流所需的所有資訊 (typedef) | |
非陣列完整物件型別,能夠唯一指定檔案中位置和多位元組解析器狀態 (typedef) |
[編輯] 預定義標準流
定義於標頭檔案
<stdio.h> | |
與輸入流關聯的 FILE* 型別的表示式 與輸出流關聯的 FILE* 型別的表示式 與錯誤輸出流關聯的 FILE* 型別的表示式 (宏常量) |
[編輯] 函式
檔案訪問 | |
定義於標頭檔案
<stdio.h> | |
(C11) |
開啟檔案 (函式) |
(C11) |
用不同的名稱開啟一個現有流 (函式) |
關閉檔案 (函式) | |
將輸出流與實際檔案同步 (函式) | |
為檔案流設定緩衝區 (函式) | |
為檔案流設定緩衝區及其大小 (函式) | |
在標頭檔案
<wchar.h> 中定義 | |
(C95) |
在寬字元 I/O 和窄字元 I/O 之間切換檔案流 (函式) |
直接輸入/輸出 | |
定義於標頭檔案
<stdio.h> | |
從檔案讀取 (函式) | |
寫入檔案 (函式) | |
非格式化輸入/輸出 | |
窄字元 | |
定義於標頭檔案
<stdio.h> | |
從檔案流中獲取一個字元 (函式) | |
從檔案流獲取字元字串 (函式) | |
向檔案流寫入一個字元 (函式) | |
將字元字串寫入檔案流 (函式) | |
從 stdin 讀取一個字元 (函式) | |
(在 C11 中移除)(C11) |
從 stdin 讀取一個字串 (函式) |
向 stdout 寫入一個字元 (函式) | |
向 stdout 寫入一個字串 (函式) | |
將一個字元放回檔案流中 (函式) | |
寬字元 | |
在標頭檔案
<wchar.h> 中定義 | |
(C95) |
從檔案流中獲取一個寬字元 (函式) |
(C95) |
從檔案流中獲取一個寬字串 (函式) |
(C95) |
向檔案流寫入一個寬字元 (函式) |
(C95) |
向檔案流寫入一個寬字串 (函式) |
(C95) |
從 stdin 讀取一個寬字元 (函式) |
(C95) |
向 stdout 寫入一個寬字元 (函式) |
(C95) |
將一個寬字元放回檔案流中 (函式) |
格式化輸入/輸出 | |
窄字元 | |
定義於標頭檔案
<stdio.h> | |
(C11)(C11)(C11) |
從 stdin、檔案流或緩衝區讀取格式化輸入 (函式) |
(C99)(C99)(C99)(C11)(C11)(C11) |
從 stdin、檔案流或緩衝區讀取格式化輸入 使用可變引數列表 (函式) |
(C99)(C11)(C11)(C11)(C11) |
將格式化輸出列印到 stdout、檔案流或緩衝區 (函式) |
(C99)(C11)(C11)(C11)(C11) |
將格式化輸出列印到 stdout、檔案流或緩衝區 使用可變引數列表 (函式) |
寬字元 | |
在標頭檔案
<wchar.h> 中定義 | |
(C95)(C95)(C95)(C11)(C11)(C11) |
從 stdin、檔案流或緩衝區讀取格式化的寬字元輸入 (函式) |
(C99)(C99)(C99)(C11)(C11)(C11) |
從 stdin、檔案流讀取格式化的寬字元輸入 或使用可變引數列表的緩衝區 (函式) |
(C95)(C95)(C95)(C11)(C11)(C11)(C11) |
將格式化的寬字元輸出列印到 stdout、檔案流或緩衝區 (函式) |
(C95)(C95)(C95)(C11)(C11)(C11)(C11) |
將格式化的寬字元輸出列印到 stdout、檔案流 或使用可變引數列表的緩衝區 (函式) |
檔案定位 | |
定義於標頭檔案
<stdio.h> | |
返回當前檔案位置指示器 (函式) | |
獲取檔案位置指示器 (函式) | |
將檔案位置指示器移動到檔案中特定位置 (函式) | |
將檔案位置指示器移動到檔案中特定位置 (函式) | |
將檔案位置指示器移動到檔案開頭 (函式) | |
錯誤處理 | |
定義於標頭檔案
<stdio.h> | |
清除錯誤 (函式) | |
檢查檔案結束 (函式) | |
檢查檔案錯誤 (函式) | |
向 stderr 顯示與當前錯誤對應的字串 (函式) | |
檔案操作 | |
定義於標頭檔案
<stdio.h> | |
擦除檔案 (函式) | |
重新命名檔案 (函式) | |
(C11) |
返回指向臨時檔案的指標 (函式) |
(C11) |
返回一個唯一的檔名 (函式) |
[編輯] 宏常量
定義於標頭檔案
<stdio.h> | |
EOF |
型別為 int 且值為負的整數常量表達式 (宏常量) |
FOPEN_MAX |
可同時開啟的最大檔案數 (宏常量) |
FILENAME_MAX |
儲存最長支援檔名所需的 char 陣列大小 (宏常量) |
BUFSIZ |
setbuf 使用的緩衝區大小 (宏常量) |
_IOFBF_IOLBF_IONBF |
傳遞給 setvbuf 的引數,表示完全緩衝 I/O 傳遞給 setvbuf 的引數,表示行緩衝 I/O 傳遞給 setvbuf 的引數,表示無緩衝 I/O (宏常量) |
SEEK_SETSEEK_CURSEEK_END |
傳遞給 fseek 的引數,表示從檔案開頭查詢 傳遞給 fseek 的引數,表示從當前檔案位置查詢 傳遞給 fseek 的引數,表示從檔案末尾查詢 (宏常量) |
TMP_MAXTMP_MAX_S (C11) |
tmpnam 可生成的唯一檔名的最大數量 tmpnam_s 可生成的唯一檔名的最大數量 (宏常量) |
L_tmpnamL_tmpnam_s (C11) |
儲存 tmpnam 結果所需的 char 陣列大小 儲存 tmpnam_s 結果所需的 char 陣列大小 (宏常量) |
[編輯] 參考
- C23 標準 (ISO/IEC 9899:2024)
- 7.21 輸入/輸出 <stdio.h> (p: TBD)
- 7.29 擴充套件多位元組和寬字元工具 <wchar.h> (p: 待定)
- 7.31.11 輸入/輸出 <stdio.h> (p: TBD)
- 7.31.16 擴充套件多位元組和寬字元工具 <wchar.h> (p: 待定)
- K.3.5 輸入/輸出 <stdio.h> (p: TBD)
- C17 標準 (ISO/IEC 9899:2018)
- 7.21 輸入/輸出 <stdio.h> (p: TBD)
- 7.29 擴充套件多位元組和寬字元工具 <wchar.h> (p: 待定)
- 7.31.11 輸入/輸出 <stdio.h> (p: TBD)
- 7.31.16 擴充套件多位元組和寬字元工具 <wchar.h> (p: 待定)
- K.3.5 輸入/輸出 <stdio.h> (p: TBD)
- C11 標準 (ISO/IEC 9899:2011)
- 7.21 輸入/輸出 <stdio.h> (p: 296-339)
- 7.29 擴充套件多位元組和寬字元工具 <wchar.h> (p: 402-446)
- 7.31.11 輸入/輸出 <stdio.h> (p: 456)
- 7.31.16 擴充套件多位元組和寬字元工具 <wchar.h> (p: 456)
- K.3.5 輸入/輸出 <stdio.h> (p: 586-603)
- C99 標準 (ISO/IEC 9899:1999)
- 7.19 輸入/輸出 <stdio.h> (p: 262-305)
- 7.24 擴充套件多位元組和寬字元工具 <wchar.h> (p: 348-392)
- 7.26.9 輸入/輸出 <stdio.h> (p: 402)
- 7.26.12 擴充套件多位元組和寬字元工具 <wchar.h> (p: 402)
- C89/C90 標準 (ISO/IEC 9899:1990)
- 4.9 輸入/輸出 <stdio.h>
- 4.13.6 輸入/輸出 <stdio.h>
[編輯] 另請參閱
C++ 文件 用於 C 風格檔案輸入/輸出
|