stdin, stdout, stderr

stdin, stdout, stderr

C++

语言

标准库头文件

自立与有宿主实现

具名要求

语言支持库

概念库 (C++20)

诊断库

工具库

字符串库

容器库

迭代器库

范围库 (C++20)

算法库

数值库

本地化库

输入/输出库

文件系统库 (C++17)

正则表达式库 (C++11)

原子操作库 (C++11)

线程支持库 (C++11)

技术规范

输入/输出库

I/O 操纵符

C 风格 I/O

缓冲

basic_streambuf

basic_filebuf

basic_stringbuf

strstreambuf(C++98 中弃用)

basic_syncbuf(C++20)

抽象

ios_base

basic_ios

basic_istream

basic_ostream

basic_iostream

文件 I/O

basic_ifstream

basic_ofstream

basic_fstream

字符串 I/O

basic_istringstream

basic_ostringstream

basic_stringstream

数组 I/O

istrstream(C++98 中弃用)

ostrstream(C++98 中弃用)

strstream(C++98 中弃用)

同步的输出

basic_osyncstream(C++20)

类型

streamoff

streamsize

fpos

错误类别接口

iostream_category(C++11)

io_errc(C++11)

C 风格 I/O

类型与对象

FILE

fpos_t

stdinstdoutstderr

函数

文件访问

fopen

freopen

fclose

fflush

fwide

setbuf

setvbuf

直接输入/输出

fread

fwrite

无格式输入/输出

fgetc

fgets

fputc

fputs

getchar

gets(C++14 前)

putchar

puts

ungetc

fgetwc

fgetws

fputwc

fputws

getwchar

putwchar

ungetwc

有格式输入

scanffscanfsscanf

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

wscanffwscanfswscanf

vwscanfvfwscanfvswscanf(C++11)(C++11)(C++11)

有格式输出

printffprintfsprintfsnprintf(C++11)

vprintfvfprintfvsprintfvsnprintf(C++11)

wprintffwprintfswprintf

vwprintfvfwprintfvswprintf

文件定位

ftell

fgetpos

fseek

fsetpos

rewind

错误处理

clearerr

feof

ferror

perror

文件上的操作

remove

rename

tmpfile

tmpnam

定义于头文件

#define stdin /* implementation-defined */

(1)

#define stdout /* implementation-defined */

(2)

#define stderr /* implementation-defined */

(3)

预定义三个文本流。这些流在程序启动时隐式打开,且为无面向。

1) 与标准输入流关联,用于读取约定的输入。程序启动时,该流为完全缓冲当且仅当能确定流不引用交互式设备。

2) 与标准输出流关联,用于写入约定的输出。程序启动时,该流为完全缓冲当且仅当能确定流不引用交互式设备。

3) 与标准错误流关联,用于写入诊断输出。程序启动时,该流不为完全缓冲。

何者组成交互式设备是实现定义的。

这些宏展开成 std::FILE* 类型表达式。

注解

尽管 POSIX 不强制, UNIX 约定是 stdin 与 stdout 若与终端关联则为行缓冲,而 stderr 为无缓冲。

这些宏可能展开成可修改左值。若修改任何这些 std::FILE* 左值,则对应的流上的后续操作导致未指明或未定义行为。

示例

此示例展示等价于 std::printf 的函数。

运行此代码

#include

#include

int my_printf(const char * fmt, ...)

{

std::va_list vl;

va_start(vl, fmt);

int ret = std::vfprintf(stdout, fmt, vl);

va_end(vl);

return ret;

}

int main()

{

my_printf("Rounding:\t%f %.0f %.32f\n", 1.5, 1.5, 1.3);

my_printf("Padding:\t%05.2f %.2f %5.2f\n", 1.5, 1.5, 1.5);

my_printf("Scientific:\t%E %e\n", 1.5, 1.5);

my_printf("Hexadecimal:\t%a %A\n", 1.5, 1.5);

}

可能的输出:

Rounding: 1.500000 2 1.30000000000000004440892098500626

Padding: 01.50 1.50 1.50

Scientific: 1.500000E+00 1.500000e+00

Hexadecimal: 0x1.8p+0 0X1.8P+0

参阅

cinwcin

从标准 C 输入流 stdin 中读取(全局对象)

coutwcout

写入到标准 C 输出流 stdout(全局对象)

cerrwcerr

写入到标准 C 错误流 stderr, 无缓冲(全局对象)

clogwclog

写入到标准 C 错误流 stderr(全局对象)

相关推荐

365结束投注什么意思 请保镖需要多少钱?——不同维度的费用分析

请保镖需要多少钱?——不同维度的费用分析

📅 06-27 👁️ 554
365betapp投注 微粒贷申请开通全攻略:条件、流程及使用技巧

微粒贷申请开通全攻略:条件、流程及使用技巧

📅 06-27 👁️ 8230
365结束投注什么意思 请保镖需要多少钱?——不同维度的费用分析

请保镖需要多少钱?——不同维度的费用分析

📅 06-27 👁️ 554