cin 如何拆分整数序列

How does cin split a sequence of integers?

本文关键字:整数 拆分 何拆分 cin      更新时间:2023-10-16

>cin如何拆分整数序列?下面给出了一个例子:

#include <iostream>
int main() {
    int sum = 0, value = 0;
    while (std::cin >> value) {
        sum += value;
    }
    std::cout << "Sum is: " << sum << std::endl;
    return 0;
}

因此,如果输入是:3 10 30 2 5输出将是:50

但这是如何发生的呢?这些值是否被视为某种数组/列表,或者单个变量的值是否由于 while 循环而更改?

初学者在这里。

以下是 http://www.cplusplus.com/doc/tutorial/basic_io/网站摘录:

cin 上的提取也可以链接以请求多个基准面 在单个语句中:

cin>> a>> b;

这相当于:

1 2

cin>> a; cin>> b;

在这两种情况下,用户都需要引入两个值,一个用于 变量 A,另一个用于变量 B。任何类型的空间都用于 分离两个连续的输入操作;这可能是一个空格, 制表符或换行符。

cin如何拆分整数序列?

很简单,让我们在这里验证一些事情。

#include <stdio>
using std::cin;

首先,什么是std::cin?它是在上面包含的标准 I\O 库中创建的对象。

cin >> 123 >> "test" >> true;

什么是>>,它是如何工作的?它是类std::cin函数。你正在调用一个函数,如何?上面的例子等效于下面的例子。

cin.operator>>(123).operator>>("test").operator>>(true);

这里的技巧,称为方法级联,是函数cin::operator>>将返回cin,因此代码将像这样工作。

cin.operator>>(123);
cin.operator>>("test");
cin.operator>>(true);