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


