在 C 语言中,我们依赖 printf 和 scanf 完成输入输出,手动指定格式符不仅繁琐,还容易因类型不匹配引发风险。C++ 引入了全新的 IO 库,通过类型安全和可扩展的设计重构了这一体验。
一、C++ 的输入与输出
1.1 核心载体:iostream 头文件
<iostream> 是 Input Output stream 的缩写,定义了 cin、cout、endl 等标准 IO 对象,并封装了底层缓冲区管理和设备交互逻辑。值得注意的是,在某些编译器(如 MSVC)中,<iostream> 可能会间接包含 <stdio.h>,允许混用 cin 与 scanf,但这会破坏跨平台兼容性,建议避免。
1.2 核心 IO 对象:cin 与 cout
std::cin 是 istream 类的对象,面向窄字符(char 类型),通过流提取运算符 >> 从键盘读取数据。
#include <iostream>
int main() {
int age;
std::cout << "请输入你的年龄:";
std::cin >> age; // 从标准输入读取整数
std::cout << "你的年龄是:" << age << "岁" << std::endl;
return 0;
}
std::cout 是 ostream 类的对象,同样面向窄字符,通过流插入运算符 << 向屏幕写入数据,支持链式调用。
#include <iostream>
int main() {
std::cout << "Hello, C++ IO Stream!" << std::endl;
return 0;
}
1.3 流操作符的双重身份
在 C 语言中,<< 和 >> 代表位移运算。C++ 通过重载技术赋予了它们新角色:
<<:流插入运算符,用于写入数据。>>:流提取运算符,用于读取数据。
这种设计让 IO 操作更符合直觉。由于运算符返回值是流对象本身,支持链式调用:
std::cout << << << << << std::endl;


