在 C++ 标准库中,stream(流)是处理输入输出(I/O)的核心抽象,分为输入流(istream)、输出流(ostream)、输入输出流(iostream)等多种类型,且支持面向不同设备(文件、字符串、控制台等)的具体流类型。
Stream 类型
类别主要类型及说明头文件输入流std::istream:通用输入流基类std::ifstream:文件输入流std::istringstream:字符串输入流输出流std: stream:通用输出流基类std: fstream:文件输出流std: stringstream:字符串输出流输入输出流std::iostream:通用输入输出流基类std::fstream:文件输入输出流std::stringstream:字符串输入输出流标准流对象std::cin:标准输入流(全局对象)std::cout:标准输出流(全局对象)std::cerr:标准错误输出流(无缓冲)std::clog:标准错误输出流(带缓冲)继承关系简图(简化版)- 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::cinstd::istream标准输入流,通常关联键盘输入带缓冲从键盘或重定向输入读取数据std::coutstd: stream标准输出流,通常关联控制台显示带缓冲向控制台或重定向输出写数据std::cerrstd: stream标准错误输出流,关联控制台显示无缓冲用于错误或即时输出提示std::clogstd: stream标准日志输出流,关联控制台显示带缓冲用于程序日志信息输出1. std::cin - 标准输入流
- 类型:std::istream
- 默认关联设备:键盘(终端输入)
- 用法:
- int x;
- std::cin >> x; // 从标准输入读取一个整数
复制代码
- 缓冲:带缓冲。输入时会先缓冲一部分数据,通常是整行读取后交给程序处理。
- 支持格式化输入:operator>> 会自动跳过空白、换行,进行类型转换。
- 支持重定向:例如从文件读取时,命令行重定向输入 program < input.txt。
2. std::cout - 标准输出流
- 类型:std:
stream
- 默认关联设备:控制台(终端显示)
- 用法:
[code]std::cout |