C流是什么意思?
摘要:在 C++ 标准库中,stream(流)是处理输入输出(IO)的核心抽象,分为输入流(istream)、输出流(ostream)、输入输出流(iostream)等多种类型,且支持面向不同设备(文件、字符
在 C++ 标准库中,stream(流)是处理输入输出(I/O)的核心抽象,分为输入流(istream)、输出流(ostream)、输入输出流(iostream)等多种类型,且支持面向不同设备(文件、字符串、控制台等)的具体流类型。
Stream 类型
类别
主要类型及说明
头文件
输入流
std::istream:通用输入流基类
<istream>
std::ifstream:文件输入流
<fstream>
std::istringstream:字符串输入流
<sstream>
输出流
std::ostream:通用输出流基类
<ostream>
std::ofstream:文件输出流
<fstream>
std::ostringstream:字符串输出流
<sstream>
输入输出流
std::iostream:通用输入输出流基类
<iostream>
std::fstream:文件输入输出流
<fstream>
std::stringstream:字符串输入输出流
<sstream>
标准流对象
std::cin:标准输入流(全局对象)
<iostream>
std::cout:标准输出流(全局对象)
<iostream>
std::cerr:标准错误输出流(无缓冲)
<iostream>
std::clog:标准错误输出流(带缓冲)
<iostream>
继承关系简图(简化版)
std::ios_base
└── std::ios
├── std::istream
│ ├── std::ifstream
│ └── std::istringstream
├── std::ostream
│ ├── std::ofstream
│ └── std::ostringstream
└── std::iostream
├── std::fstream
└── std::stringstream
一、标准流
C++ 标准库定义了四个主要的标准流对象:
对象名
类型
功能描述
缓冲机制
用途
std::cin
std::istream
标准输入流,通常关联键盘输入
带缓冲
从键盘或重定向输入读取数据
std::cout
std::ostream
标准输出流,通常关联控制台显示
带缓冲
向控制台或重定向输出写数据
std::cerr
std::ostream
标准错误输出流,关联控制台显示
无缓冲
用于错误或即时输出提示
std::clog
std::ostream
标准日志输出流,关联控制台显示
带缓冲
用于程序日志信息输出
1. std::cin - 标准输入流
类型:std::istream
默认关联设备:键盘(终端输入)
用法:
int x;
std::cin >> x; // 从标准输入读取一个整数
缓冲:带缓冲。输入时会先缓冲一部分数据,通常是整行读取后交给程序处理。
支持格式化输入:operator>> 会自动跳过空白、换行,进行类型转换。
支持重定向:例如从文件读取时,命令行重定向输入 program < input.txt。
2. std::cout - 标准输出流
类型:std::ostream
默认关联设备:控制台(终端显示)
用法:
std::cout << "Hello, world!" << std::endl;
缓冲:带缓冲。缓冲区满或者遇到 std::endl 会刷新缓冲区写到终端。
支持各种类型的格式化输出(整型、浮点、字符串、自定义类型重载 operator<<)。
支持重定向:例如把输出写入文件 program > output.txt。
3. std::cerr - 标准错误输出流
类型:std::ostream
默认关联设备:控制台(终端显示)
无缓冲输出:写入时立即发送到终端,适合打印错误或警告信息,确保及时可见。
