cin如何分割整数序列?

时间:2016-02-21 06:59:37

标签: c++

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循环而改变了单个变量的值?

初学者。

2 个答案:

答案 0 :(得分:2)

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

  

cin上的提取也可以链接到请求多个数据   在一个声明中:

     

cin&gt;&gt; a&gt;&gt; B;

     

这相当于:

     

1 2

     

cin&gt;&gt;一个; cin&gt;&gt; B;

     

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

答案 1 :(得分:0)

  

cin如何拆分整数序列?

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

#include <stdio>

using std::cin;

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

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

什么是>>以及它是如何运作的?它是std::cin类中的函数。你在调用一个函数,怎么样?以上示例等同于以下内容..

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

此处的诀窍(称为Method Cascading)是函数cin::operator>>将返回cin,因此代码将像这样工作..

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