一、初识输入输出

小吴湾的北极熊 / 2024-02-23 / 原文

一、初识输入输出

1. cin 标准输入对象

cin 需要头文件 <iostream>,并且 cin 是定义在名为 std 的命名空间 (namespace) 中的。

std::cin >> v1 >> v2;

上述代码是一个输入示例,表示将第一个输入的值存入 v1,第二个输入的值存入 v2。输入运算符 >> 返回其左侧运算对象作为其计算结果,并且存入右侧对象当中。上述代码等价于:

(std::cin >> v1) >> v2;

它与下面两条语句执行结果是一样的:

std::cin >> v1;
std::cin >> v2;

2. cout 标准输出对象

给出示例代码:

std::cout << "The sum of " << v1 << " and " << v2 << " is " << v1 + v2 << std::endl;

endl是一个被称为操纵符的特殊值,作用是结束当前行,并将与设备相关联的缓冲区 (buffer) 中的内容刷到设备中。

如果不想在每一个 cin 和 cout 之前都加上 std::,可以在程序的最开始加上语句:

using namespace std;

3. 示例:读取数量不定的输入数据

#include <iostream>
using namespace std;

int main (){
    int sum = 0, value = 0;
    //读取数据直到遇到文件尾,计算所有读入的值的和
    while(cin >> value){
        sum += value; //等价于 sum = sum + value
    }
    cout << "Sum is: " << sum << endl;
    return 0;
}

如果输入数据为:

3 4 5 6

则程序会输出:

Sum is: 18

当我们使用一个 istream 对象作为判断的条件时,其效果是检测流的状态,如果流未遇到错误则检测成功,当遇到文件结束符 (end-of-file),或者遇到一个无效输入时,istream 对象的状态会变成无效,判断条件此时为假。

从键盘输入文件结束符
Windows:Ctrl+Z
UNIX 以及类 UNIX 系统(包括linux和Mac OS):Ctrl+D