前置说明
C++ 的输出流操作符分为两类:
- 无需额外头文件:直接包含
<iostream>即可使用(如endl、flush); - 需要
<iomanip>头文件:格式控制类操作符(如setw、setprecision),需先#include <iomanip>。
一、基础输出控制操作符
这类操作符主要控制输出的基础行为(刷新、布尔值、进制等),是日常开发中最常用的基础工具。
1. flush:仅刷新缓冲区(不换行)
- 功能:强制刷新输出缓冲区(和
endl的'刷新'功能一致),但不插入换行符; - 适用场景:需要实时输出内容,但不需要换行时(比如进度条、实时日志)。
示例:
#include <iostream>
#include <unistd.h> // Linux/macOS 暂停函数,Windows 用 #include <windows.h> + Sleep(1000)
using namespace std;
int main() {
cout << "加载中...";
cout << flush; // 立即刷新缓冲区,'加载中...'会马上显示
sleep(2); // 暂停 2 秒(模拟加载)
cout << "完成" << endl;
return 0;
}
输出效果:先显示'加载中…',暂停 2 秒后显示'完成'(无换行)。
2. ends:插入空字符 + 刷新缓冲区
- 功能:向输出流插入空字符
'\'0',并刷新缓冲区; - 适用场景:主要用于
ostringstream(字符串输出流)结束字符串,或手动标记字符串结束。
示例:
#include <iostream>
#include
std;
{
ostringstream oss;
oss << << ends << ;
cout << oss.() << endl;
;
}

