一、流的概念
在 C++ 中,将数据从一个对象到另外一个对象的流动被抽象为”流”(stream)。流在使用前需要被建立,使用后要被删除。
从流中获取数据的操作称为提取操作(输入),向流中添加数据的操作称为插入操作(输出)。
二、I/O 流与标准输入输出
数据的输入和输出通过 I/O 流来实现。cin 和 cout 是预定义的流类对象:
- cin:标准输入流对象,用于处理标准输入,通常对应键盘输入。
- cout:标准输出流对象,用于处理标准输出,通常对应屏幕输出。
使用 cin 和 cout 需要包含头文件 iostream,并通过 std 命名空间访问(或使用 using namespace std;)。
三、输出操作(cout)
cout 配合输出运算符 <<(插入运算符)将数据输出到屏幕。
基本形式:
cout << 表达式1 << 表达式2 << ... ;
cout 可以连续输出多个数据,每个 << 后面跟一个待输出的表达式。
示例:
int a = 10;
double b = 3.14;
cout << "a = " << a << ", b = " << b << endl;Code language: JavaScript (javascript)
endl 是一个操纵符,作用是插入换行符并刷新输出缓冲区。
四、输入操作(cin)
cin 配合输入运算符 >>(提取运算符)从键盘读取数据。
基本形式:
cin >> 变量1 >> 变量2 >> ... ;
cin 可以连续读取多个数据,每个 >> 后面跟一个变量。输入时多个数据之间用空白字符(空格、Tab、回车)分隔。
示例:
int x;
double y;
cin >> x >> y; // 从键盘输入两个整数或浮点数Code language: JavaScript (javascript)
五、代码示例
以下代码演示了数据的输入与输出基本用法:
#include <iostream>
using namespace std;
int main()
{
// 输出示例
cout << "Hello, C++!" << endl;
cout << "This is a simple output example." << endl;
int age;
double height;
// 输入示例
cout << "Please enter your age: ";
cin >> age;
cout << "Please enter your height: ";
cin >> height;
// 输出结果
cout << "Your age is " << age << " years old." << endl;
cout << "Your height is " << height << " meters." << endl;
// 连续输入
int a, b, c;
cout << "Enter three integers separated by space: ";
cin >> a >> b >> c;
cout << "You entered: a = " << a << ", b = " << b << ", c = " << c << endl;
// 混合输入输出
char name[50];
cout << "Enter your name: ";
cin >> name;
cout << "Hello, " << name << "!" << endl;
return 0;
}Code language: PHP (php)
六、注意事项
- 使用 cin 和 cout 前必须包含头文件 iostream,并正确使用命名空间 std。
- cin 的 >> 运算符在读取数据时会跳过前导空白字符(空格、换行、制表符)。
- cin 读取字符串(char 数组)时,遇到空白字符即停止,不会读取包含空格的字符串。如需读取一行,可使用 cin.getline()。
- cout 输出时不会自动添加空格或换行,需要手动添加分隔符或 endl。
- endl 会刷新缓冲区,频繁使用可能影响性能。如果仅需换行,可使用 “\n” 代替 endl。
- cin 和 cout 的类型安全:编译器会根据变量类型自动匹配正确的输入/输出方式,减少错误。
七、小结
- C++ 将数据流动抽象为流,输入为提取操作,输出为插入操作。
- cin 和 cout 是预定义的标准输入输出流对象。
- cout 配合 << 实现输出,cin 配合 >> 实现输入。
- 使用 cin 和 cout 需要包含 iostream 头文件。
- 输入时多个数据用空白分隔,输出时需手动控制格式。
- 后续章节将介绍更多格式化输入输出方法。
Previous: 语句
Next: 预定义的插入符cout和提取符cin