std::cout,std::wcout

C++

编译器支持

自由(freestanding)与宿主(hosted)

语言

标准库

标准库头文件

具名要求

特性测试宏 (C++20)

语言支持库

概念库 (C++20)

诊断库

内存管理库

元编程库 (C++11)

通用工具库

容器库

迭代器库

范围库 (C++20)

算法库

字符串库

文本处理库

数值库

日期和时间库

输入/输出库

文件系统库 (C++17)

并发支持库 (C++11)

执行控制库 (C++26)

技术规范

符号索引

外部库

[编辑] 输入/输出库

I/O 操纵器

打印函数 (C++23)

C 风格 I/O

缓冲区

basic_streambuf

basic_filebuf

basic_stringbuf

basic_spanbuf(C++23)

strstreambuf(C++98/26*)

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

basic_ispanstream(C++23)

basic_ospanstream(C++23)

basic_spanstream(C++23)

istrstream(C++98/26*)

ostrstream(C++98/26*)

strstream(C++98/26*)

同步输出

basic_osyncstream(C++20)

类型

streamoff

streamsize

fpos

错误类别接口

iostream_category(C++11)

io_errc(C++11)

[编辑] std::basic_ostream

全局对象

coutwcout

cerrwcerr

clogwclog

成员函数

basic_ostream::basic_ostream

basic_ostream::~basic_ostream

basic_ostream::operator=(C++11)

格式化输出

basic_ostream::operator<<

非格式化输出

basic_ostream::put

basic_ostream::write

定位

basic_ostream::tellp

basic_ostream::seekp

杂项

basic_ostream::flush

basic_ostream::swap(C++11)

成员类

basic_ostream::sentry

非成员函数

operator<<(std::basic_ostream)

print(std::ostream)(C++23)

println(std::ostream)(C++23)

vprint_unicode(std::ostream)(C++23)

vprint_nonunicode(std::ostream)(C++23)

[编辑]

定义于头文件

extern std::ostream cout;

(1)

extern std::wostream wcout;

(2)

全局对象 std::cout 和 std::wcout 控制输出到实现定义类型的流缓冲区(派生自 std::streambuf),该缓冲区与标准 C 输出流 stdout 关联。

这些对象保证在类型为 std::ios_base::Init 的对象首次构造期间或之前被初始化,并可在具有有序初始化的静态对象的构造函数和析构函数中使用(只要在定义对象之前包含 )。

除非已发出 std::ios_base::sync_with_stdio(false),否则可以安全地从多个线程同时访问这些对象以进行格式化和非格式化输出。

根据 std::cin 的规范,std::cin.tie() 返回 &std::cout。这意味着对 std::cin 的任何输入操作都会执行 std::cout.flush()(通过 std::basic_istream::sentry 的构造函数)。类似地,std::wcin.tie() 返回 &std::wcout。

根据 std::cerr 的规范,std::cerr.tie() 返回 &std::cout。这意味着对 std::cerr 的任何输出操作都会执行 std::cout.flush()(通过 std::basic_ostream::sentry 的构造函数)。类似地,std::wcerr.tie() 返回 &std::wcout。(C++11 起)

[编辑] 注意

名称中的“c”指的是“字符”(stroustrup.com FAQ);cout 意为“字符输出”,wcout 意为“宽字符输出”。

由于动态初始化模板化变量是无序的,因此不能保证在这些变量的初始化开始之前 std::cout 已初始化为可用状态,除非已构造类型为 std::ios_base::Init 的对象。

[编辑] 示例

运行此代码

#include

struct Foo

{

int n;

Foo()

{

std::cout << "static constructor\n";

}

~Foo()

{

std::cout << "static destructor\n";

}

};

Foo f; // static object

int main()

{

std::cout << "main function\n";

}

输出

static constructor

main function

static destructor

[编辑] 另请参阅

Init

初始化标准流对象 (std::ios_base 的公共成员类) [编辑]

cerrwcerr

写入标准 C 错误流 stderr,无缓冲(全局对象)[编辑]

clogwclog

写入标准 C 错误流 stderr(全局对象)[编辑]

stdinstdoutstderr

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

2026-02-09 16:12:01
弹头越尖穿甲能力就越强?浅谈穿甲弹的侵彻机制
购买数字货币后如何提币?