Namespaces
Variants

File input/output

From cppreference.net
< c

<stdio.h> 头文件提供通用文件操作支持,并具备窄字符输入/输出功能的函数。

<wchar.h> 头文件提供了具有宽字符输入/输出功能的函数。

I/O流由类型为 FILE 的对象表示,这些对象只能通过 FILE * 类型的指针进行访问和操作。每个流都与一个外部物理设备(文件、标准输入流、打印机、串行端口等)相关联。

目录

类型

定义于头文件 <stdio.h>
对象类型,能够保存控制C I/O流所需的所有信息
(typedef)
非数组完整对象类型,能够唯一指定文件中的位置和多字节解析器状态
(typedef)

预定义标准流

定义于头文件 <stdio.h>
与输入流关联的 FILE * 类型表达式
与输出流关联的 FILE * 类型表达式
与错误输出流关联的 FILE * 类型表达式
(宏常量)

函数

文件访问
定义于头文件 <stdio.h>
打开文件
(函数)
用不同名称打开现有流
(函数)
关闭文件
(函数)
将输出流与实际文件同步
(函数)
设置文件流的缓冲区
(函数)
设置文件流的缓冲区及其大小
(函数)
定义于头文件 <wchar.h>
(C95)
在宽字符 I/O 与窄字符 I/O 间切换文件流
(函数)
直接输入/输出
定义于头文件 <stdio.h>
从文件读取
(函数)
写入文件
(函数)
无格式输入/输出
窄字符
定义于头文件 <stdio.h>
从文件流获取字符
(函数)
从文件流获取字符串
(函数)
写入字符到文件流
(函数)
写入字符串到文件流
(函数)
stdin 读取字符
(函数)
(C11 中移除) (C11)
stdin 读取字符串
(函数)
写入字符到 stdout
(函数)
写入字符串到 stdout
(函数)
将字符放回文件流
(函数)
宽字符
定义于头文件 <wchar.h>
从文件流获取宽字符
(函数)
(C95)
从文件流获取宽字符串
(函数) <span class="edits

宏常量

定义于头文件 <stdio.h>
EOF
类型为 int 且值为负的整型常量表达式
(宏常量)
FOPEN_MAX
可同时打开的最大文件数
(宏常量)
FILENAME_MAX
存储最长受支持文件名所需的 char 数组大小
(宏常量)
BUFSIZ
setbuf 所用的缓冲区大小
(宏常量)
_IOFBF _IOLBF _IONBF
传递给 setvbuf 的参数,指示全缓冲 I/O
传递给 setvbuf 的参数,指示行缓冲 I/O
传递给 setvbuf 的参数,指示无缓冲 I/O
(宏常量)
SEEK_SET SEEK_CUR SEEK_END
传递给 fseek 的参数,指示从文件起始位置寻址
传递给 fseek 的参数,指示从当前文件位置寻址
传递给 fseek 的参数,指示从文件末尾寻址
(宏常量)
TMP_MAX TMP_MAX_S
(C11)
tmpnam 可生成的最大唯一文件名数量
tmpnam_s 可生成的最大唯一文件名数量
(宏常量)
L_tmpnam L_tmpnam_s
(C11)
存储 tmpnam 结果所需的 char 数组大小
存储 tmpnam_s 结果所需的 char 数组大小
(宏常量)

参考文献

  • C23 标准 (ISO/IEC 9899:2024):
  • 7.21 输入/输出 <stdio.h> (页码: TBD)
  • 7.29 扩展多字节与宽字符工具 <wchar.h> (页码: TBD)
  • 7.31.11 输入/输出 <stdio.h> (页码: TBD)
  • 7.31.16 扩展多字节与宽字符工具 <wchar.h> (页码: TBD)
  • K.3.5 输入/输出 <stdio.h> (页码: TBD)
  • C17 标准 (ISO/IEC 9899:2018):
  • 7.21 输入/输出 <stdio.h> (页码: 待定)
  • 7.29 扩展多字节与宽字符工具 <wchar.h> (页码: 待定)
  • 7.31.11 输入/输出 <stdio.h> (页码: 待定)
  • 7.31.16 扩展多字节与宽字符工具 <wchar.h> (页码: 待定)
  • K.3.5 输入/输出 <stdio.h> (页码: 待定)
  • C11 标准 (ISO/IEC 9899:2011):
  • 7.21 输入/输出 <stdio.h> (页: 296-339)
  • 7.29 扩展多字节与宽字符工具 <wchar.h> (页: 402-446)
  • 7.31.11 输入/输出 <stdio.h> (页: 456)
  • 7.31.16 扩展多字节与宽字符工具 <wchar.h> (页: 456)
  • K.3.5 输入/输出 <stdio.h> (页: 586-603)
  • C99标准(ISO/IEC 9899:1999):
  • 7.19 输入/输出 <stdio.h>(页码:262-305)
  • 7.24 扩展多字节和宽字符工具 <wchar.h>(页码:348-392)
  • 7.26.9 输入/输出 <stdio.h>(页码:402)
  • 7.26.12 扩展多字节和宽字符工具 <wchar.h>(页码:402)
  • C89/C90 标准 (ISO/IEC 9899:1990):
  • 4.9 输入/输出 <stdio.h>
  • 4.13.6 输入/输出 <stdio.h>

参见

C++ 文档 关于 C 风格文件输入/输出