文件输入/输出
来自 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: TBD)
- 7.31.11 输入/输出 <stdio.h> (p: TBD)
- 7.31.16 扩展多字节和宽字符工具 <wchar.h> (p: TBD)
- K.3.5 输入/输出 <stdio.h> (p: TBD)
- C17 标准 (ISO/IEC 9899:2018)
- 7.21 输入/输出 <stdio.h> (p: TBD)
- 7.29 扩展多字节和宽字符工具 <wchar.h> (p: TBD)
- 7.31.11 输入/输出 <stdio.h> (p: TBD)
- 7.31.16 扩展多字节和宽字符工具 <wchar.h> (p: TBD)
- 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++ 文档 for C 样式文件输入/输出
|