标准库头文件

C++

编译器支持

自由(freestanding)与宿主(hosted)

语言

标准库

标准库头文件

具名要求

特性测试宏 (C++20)

语言支持库

概念库 (C++20)

诊断库

内存管理库

元编程库 (C++11)

通用工具库

容器库

迭代器库

范围库 (C++20)

算法库

字符串库

文本处理库

数值库

日期和时间库

输入/输出库

文件系统库 (C++17)

并发支持库 (C++11)

执行控制库 (C++26)

技术规范

符号索引

外部库

[编辑] 标准库头文件

语言支持

(C++20)

(C++26)

(C++20)

(C++11)

(C++11)

(C++20)

(C++23)

(C++20)

概念

(C++20)

诊断

(C++26)

(C++23)

(C++11)

内存管理

(C++17)

(C++11)

元编程

(C++11)

(C++11)

通用工具

(C++17)

(C++20)

(C++17)

(C++23)

(C++20)

(C++17)

(C++11)

(C++11)

(C++17)

容器

(C++11)

(C++23)

(C++23)

(C++11)

(C++26)

(C++26)

(C++23)

(C++20)

(C++11)

(C++11)

迭代器

Ranges

(C++23)

(C++20)

算法

字符串

(C++11)

(C++17)

文本处理

(C++11/17/26*)

(C++11)

(C++26)

数值

(C++11)

(C++26)

(C++20)

(C++11)

(C++26)

时间

(C++11)

C 兼容性

(C++11/17/20*)

(直到 C++20)

(C++11/17/20*)

(C++11/17/20*)

(C++11/17/20*)

输入/输出

(C++11)

(C++17)

(C++23)

(C++23)

(C++98/26*)

(C++20)

并发支持

(C++11)

(C++20)

(C++11)

(C++11)

(C++26)

(C++20)

(C++11)

(C++26)

(C++20)

(C++14)

(C++23)

(C++20)

(C++11)

执行支持

(C++17)

[编辑]

此头文件最初是 C 标准库的一部分,命名为

此头文件是 C 风格输入/输出库的一部分。

目录

1 类型

2 宏

3 函数

3.1 文件访问

3.2 直接输入/输出

3.3 非格式化输入/输出

3.4 窄字符

3.5 格式化输入/输出

3.6 窄/多字节字符

3.7 文件定位

3.8 错误处理

3.9 文件操作

4 概要

5 注释

类型

FILE

对象类型,能够保存控制 C I/O 流所需的所有信息 (typedef) [编辑]

fpos_t

完整的非数组对象类型,能够唯一指定文件中的位置,包括其多字节解析状态 (typedef) [编辑]

size_t

由 sizeof 运算符返回的无符号整型 (typedef) [编辑]

NULL

实现定义的空指针常量 (宏常量) [编辑]

stdinstdoutstderr

与输入流关联的 FILE* 类型的表达式与输出流关联的 FILE* 类型的表达式与错误输出流关联的 FILE* 类型的表达式 (宏常量) [编辑]

EOF

类型为 int 且值为负的整数常量表达式 (宏常量)

FOPEN_MAX

可以同时打开的最大文件数 (宏常量)

FILENAME_MAX

容纳最长支持的文件名所需的 char 数组大小 (宏常量)

BUFSIZ

由 std::setbuf 使用的缓冲区大小 (宏常量)

_IOFBF_IOLBF_IONBF

std::setbuf 的参数,指示完全缓冲 I/Ostd::setbuf 的参数,指示行缓冲 I/Ostd::setbuf 的参数,指示无缓冲 I/O (宏常量)

SEEK_SETSEEK_CURSEEK_END

std::fseek 的参数,指示从文件开头查找std::fseek 的参数,指示从当前文件位置查找std::fseek 的参数,指示从文件末尾查找 (宏常量)

TMP_MAX

由 std::tmpnam 生成的最大唯一文件名数 (宏常量)

L_tmpnam

容纳 std::tmpnam 结果所需的 char 数组大小 (宏常量)

函数

文件访问

fopen

打开文件 (函数) [编辑]

freopen

用不同的名称打开一个现有流 (函数) [编辑]

fclose

关闭文件 (函数) [编辑]

fflush

将输出流与实际文件同步 (函数) [编辑]

setbuf

为文件流设置缓冲区 (函数) [编辑]

setvbuf

为文件流设置缓冲区及其大小 (函数) [编辑]

直接输入/输出

fread

从文件读取 (函数) [编辑]

fwrite

写入文件 (函数) [编辑]

非格式化输入/输出

窄字符

fgetcgetc

从文件流中获取一个字符 (函数) [编辑]

fgets

从文件流获取字符字符串 (函数) [编辑]

fputcputc

向文件流写入一个字符 (函数) [编辑]

fputs

将字符字符串写入文件流 (函数) [编辑]

getchar

从 stdin 读取一个字符 (函数) [编辑]

gets(C++11 起已弃用)(C++14 起移除)

从 stdin 读取一个字符串 (函数) [编辑]

putchar

向 stdout 写入一个字符 (函数) [编辑]

puts

向 stdout 写入一个字符串 (函数) [编辑]

ungetc

将一个字符放回文件流中 (函数) [编辑]

格式化输入/输出

窄/多字节字符

scanffscanfsscanf

从 stdin、文件流或缓冲区读取格式化输入 (函数) [编辑]

vscanfvfscanfvsscanf(C++11)(C++11)(C++11)

从 stdin、文件流或缓冲区读取格式化输入使用可变参数列表 (函数) [编辑]

printffprintfsprintfsnprintf(C++11)

将格式化输出打印到 stdout、文件流或缓冲区 (函数) [编辑]

vprintfvfprintfvsprintfvsnprintf(C++11)

将格式化输出打印到 stdout、文件流或缓冲区使用可变参数列表 (函数) [编辑]

文件定位

ftell

返回当前文件位置指示器 (函数) [编辑]

fgetpos

获取文件位置指示器 (函数) [编辑]

fseek

将文件位置指示器移动到文件中特定位置 (函数) [编辑]

fsetpos

将文件位置指示器移动到文件中特定位置 (函数) [编辑]

rewind

将文件位置指示器移动到文件开头 (函数) [编辑]

错误处理

clearerr

清除错误 (函数) [编辑]

feof

检查文件结束 (函数) [编辑]

ferror

检查文件错误 (函数) [编辑]

perror

将当前错误的字符串显示到 stderr (函数) [编辑]

文件操作

remove

擦除文件 (函数) [编辑]

rename

重命名文件 (函数) [编辑]

tmpfile

创建并打开一个临时文件,该文件将自动删除 (函数) [编辑]

tmpnam

返回一个唯一的文件名 (函数) [编辑]

[编辑] 概要

namespace std {

using size_t = /* see description */;

using FILE = /* see description */;

using fpos_t = /* see description */;

}

#define NULL /* see description */

#define _IOFBF /* see description */

#define _IOLBF /* see description */

#define _IONBF /* see description */

#define BUFSIZ /* see description */

#define EOF /* see description */

#define FOPEN_MAX /* see description */

#define FILENAME_MAX /* see description */

#define L_tmpnam /* see description */

#define SEEK_CUR /* see description */

#define SEEK_END /* see description */

#define SEEK_SET /* see description */

#define TMP_MAX /* see description */

#define stderr /* see description */

#define stdin /* see description */

#define stdout /* see description */

namespace std {

int remove(const char* filename);

int rename(const char* old_p, const char* new_p);

FILE* tmpfile();

char* tmpnam(char* s);

int fclose(FILE* stream);

int fflush(FILE* stream);

FILE* fopen(const char* filename, const char* mode);

FILE* freopen(const char* filename, const char* mode, FILE* stream);

void setbuf(FILE* stream, char* buf);

int setvbuf(FILE* stream, char* buf, int mode, size_t size);

int fprintf(FILE* stream, const char* format, ...);

int fscanf(FILE* stream, const char* format, ...);

int printf(const char* format, ...);

int scanf(const char* format, ...);

int snprintf(char* s, size_t n, const char* format, ...);

int sprintf(char* s, const char* format, ...);

int sscanf(const char* s, const char* format, ...);

int vfprintf(FILE* stream, const char* format, va_list arg);

int vfscanf(FILE* stream, const char* format, va_list arg);

int vprintf(const char* format, va_list arg);

int vscanf(const char* format, va_list arg);

int vsnprintf(char* s, size_t n, const char* format, va_list arg);

int vsprintf(char* s, const char* format, va_list arg);

int vsscanf(const char* s, const char* format, va_list arg);

int fgetc(FILE* stream);

char* fgets(char* s, int n, FILE* stream);

int fputc(int c, FILE* stream);

int fputs(const char* s, FILE* stream);

int getc(FILE* stream);

int getchar();

int putc(int c, FILE* stream);

int putchar(int c);

int puts(const char* s);

int ungetc(int c, FILE* stream);

size_t fread(void* ptr, size_t size, size_t nmemb, FILE* stream);

size_t fwrite(const void* ptr, size_t size, size_t nmemb, FILE* stream);

int fgetpos(FILE* stream, fpos_t* pos);

int fseek(FILE* stream, long int offset, int whence);

int fsetpos(FILE* stream, const fpos_t* pos);

long int ftell(FILE* stream);

void rewind(FILE* stream);

void clearerr(FILE* stream);

int feof(FILE* stream);

int ferror(FILE* stream);

void perror(const char* s);

}

[编辑] 注意

NULL 也定义在以下头文件中

std::size_t 也定义在以下头文件中

(C++17 起)