文件输入/输出
来自 cppreference.cn
< 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 风格文件输入/输出
|