文件输入/输出 - cppreference.com
来自cppreference.com
<stdio.h> 标头提供了通用的文件操作支持,并提供了具有窄字符输入/输出功能的函数。
<wchar.h> 标头提供了具有宽字符输入/输出功能的函数。
输入/输出流由 FILE 类型的对象表示,该对象只能通过 FILE* 类型的指针访问及操作。每个流都与外部的物理设备(文件、标准输入流、打印机、序列端口等)相关联。
类型
预定义标准流
函数
文件访问 | |
在标头 | |
(C11) |
打开文件 (函数) [编辑] |
(C11) |
以不同名称打开既存的文件流 (函数) [编辑] |
| 关闭文件 (函数) [编辑] | |
| 将输出流与实际文件同步 (函数) [编辑] | |
| 为文件流设置缓冲区 (函数) [编辑] | |
| 为文件流设置缓冲区和其大小 (函数) [编辑] | |
在标头 | |
(C95) |
将文件流在宽字符 I/O 和窄字符 I/O 间切换 (函数) [编辑] |
直接输入/输出 | |
在标头 | |
| 从文件读取 (函数) [编辑] | |
| 写入到文件 (函数) [编辑] | |
无格式输入/输出 | |
窄字符 | |
在标头 | |
| 从文件流获取一个字符 (函数) [编辑] | |
| 从文件流获取一个字符串 (函数) [编辑] | |
| 将一个字符写入文件流 (函数) [编辑] | |
| 将一个字符串写入文件流 (函数) [编辑] | |
| 从 stdin 读取一个字符 (函数) [编辑] | |
(C11 移除)(C11) |
从 stdin 读取一个字符串 (函数) [编辑] |
| 将一个字符写入 stdout (函数) [编辑] | |
| 将一个字符串写入 stdout (函数) [编辑] | |
| 将一个字符送回文件流 (函数) [编辑] | |
宽字符 | |
在标头 | |
(C95) |
从文件流获取一个宽字符 (函数) [编辑] |
(C95) |
从文件流获取一个宽字符串 (函数) [编辑] |
(C95) |
将一个宽字符写入文件流 (函数) [编辑] |
(C95) |
将一个宽字符串写入文件流 (函数) [编辑] |
(C95) |
从 stdin 读取一个宽字符 (函数) [编辑] |
(C95) |
将一个宽字符写入 stdout (函数) [编辑] |
(C95) |
将一个宽字符送回文件流 (函数) [编辑] |
有格式输入/输出 | |
窄字符 | |
在标头 | |
(C11)(C11)(C11) |
从stdin、文件流或缓冲区读取格式化输入 (函数) [编辑] |
(C99)(C99)(C99)(C11)(C11)(C11) |
从 stdin、文件流或缓冲区读取格式化输入 使用可变参数列表 (函数) [编辑] |
(C99)(C11)(C11)(C11)(C11) |
打印格式化输出到 stdout、文件流或缓冲区 (函数) [编辑] |
(C99)(C11)(C11)(C11)(C11) |
打印格式化输出到 stdout、文件流或缓冲区 使用可变参数列表 (函数) [编辑] |
宽字符 | |
在标头 | |
(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、文件流或缓冲区 使用可变参数列表 (函数) [编辑] |
文件定位 | |
在标头 | |
| 返回当前的文件位置指示值 (函数) [编辑] | |
| 获取文件位置指示器 (函数) [编辑] | |
| 将文件位置指示符移动到文件中的指定位置 (函数) [编辑] | |
| 将文件位置指示器移动到文件中的指定位置 (函数) [编辑] | |
| 将文件位置指示器移动到文件首 (函数) [编辑] | |
错误处理 | |
在标头 | |
| 清除错误 (函数) [编辑] | |
| 检查文件结尾 (函数) [编辑] | |
| 检查文件错误 (函数) [编辑] | |
| 显示对应当前错误的字符串到 stderr (函数) [编辑] | |
对文件的操作 | |
在标头 | |
| 删除文件 (函数) [编辑] | |
| 重命名文件 (函数) [编辑] | |
(C11) |
返回指向临时文件的指针 (函数) [编辑] |
(C11) |
返回唯一的文件名 (函数) [编辑] |
宏常量
值为负的 int 类型整数常量表达式 (宏常量) | |
| 能同时打开的最大文件数 (宏常量) | |
保有最长受支持文件名所需的 char 数组大小 (宏常量) | |
| 所有(可能取反的)非数(NaN)值可输出的最大字符数 (宏常量) |
| setbuf 所用的缓冲区大小 (宏常量) | |
| 表示 setvbuf 要设置的缓冲模式(全缓冲/行缓冲/无缓冲) (宏常量) | |
| 表示 fseek 要用到的偏移原点(文件首/当前位置/文件尾) (宏常量) | |
| tmpnam / tmpnam_s 所能生成的独有文件名的最大数量 (宏常量) | |
保有 tmpnam / tmpnam_s 结果所需的 char 数组大小 (宏常量) |
引用
- C23 标准(ISO/IEC 9899:2024):
- 7.21 Input/output <stdio.h> (第 TBD 页)
- 7.29 Extended multibyte and wide character utilities <wchar.h> (第 TBD 页)
- 7.31.11 Input/output <stdio.h> (第 TBD 页)
- 7.31.16 Extended multibyte and wide character utilities <wchar.h> (第 TBD 页)
- K.3.5 Input/output <stdio.h> (第 TBD 页)
- C17 标准(ISO/IEC 9899:2018):
- 7.21 Input/output <stdio.h> (第 TBD 页)
- 7.29 Extended multibyte and wide character utilities <wchar.h> (第 TBD 页)
- 7.31.11 Input/output <stdio.h> (第 TBD 页)
- 7.31.16 Extended multibyte and wide character utilities <wchar.h> (第 TBD 页)
- K.3.5 Input/output <stdio.h> (第 TBD 页)
- C11 标准(ISO/IEC 9899:2011):
- 7.21 Input/output <stdio.h> (第 296-339 页)
- 7.29 Extended multibyte and wide character utilities <wchar.h> (第 402-446 页)
- 7.31.11 Input/output <stdio.h> (第 456 页)
- 7.31.16 Extended multibyte and wide character utilities <wchar.h> (第 456 页)
- K.3.5 Input/output <stdio.h> (第 586-603 页)
- C99 标准(ISO/IEC 9899:1999):
- 7.19 Input/output <stdio.h> (第 262-305 页)
- 7.24 Extended multibyte and wide character utilities <wchar.h> (第 348-392 页)
- 7.26.9 Input/output <stdio.h> (第 402 页)
- 7.26.12 Extended multibyte and wide character utilities <wchar.h> (第 402 页)
- C89/C90 标准(ISO/IEC 9899:1990):
- 4.9 INPUT/OUTPUT <stdio.h>
- 4.13.6 Input/output <stdio.h>