C++ 输入输出流
在 C 语言中,我们依赖 printf 和 scanf 完成输入输出,需要手动指定格式符,存在类型不匹配的风险。C++ 引入了全新的 IO 库,以类型安全、可扩展的设计重构了这一体验。
核心头文件
<iostream> 是 Input Output stream 的缩写,定义了 cin、cout、endl 等标准 IO 对象,封装了底层缓冲区管理等细节。注意,虽然某些编译器(如 MSVC)可能间接包含 <stdio.h>,但为了跨平台兼容性,建议不要混用 C 风格 IO 和 C++ 流。
cin 与 cout
std::cin 是 istream 类的对象,通过流提取运算符 >> 读取数据。std::cout 是 ostream 类的对象,通过流插入运算符 << 写入数据。两者支持链式调用。
#include <iostream>
int main() {
int age;
std::cout << "请输入年龄:" << std::endl;
std::cin >> age;
std::cout << "你的年龄是:" << age << "岁" << std::endl;
return 0;
}
流操作符与换行
<< 和 >> 在 C++ 中被重载为流操作符。endl 不仅换行,还会强制刷新缓冲区,频繁使用会影响性能。调试时可用的 std::endl,常规输出建议使用 。
std::cout << "Hello\n"; // 仅换行,性能优
std::cout << "Debug" << std::endl; // 换行并刷新
自动类型识别与自定义支持
C++ IO 流通过重载实现了自动类型识别,无需像 C 语言那样担心格式符错误。对于自定义类型,可以通过重载 << 和 >> 运算符来支持直接输出。
#include <iostream>
struct Point { int x, y; };
std::ostream& operator<<(std::ostream& os, const Point& p) {
return os << "(" << p.x << ", " << p.y << ;
}


