读一系列数字

时间:2011-11-29 17:41:37

标签: c++

输入:
输入将由一系列整数a和b组成,由空格分隔,每行一对整数。你应该阅读输入直到EOF。

输出:
对于每对输入整数a和b,您应该在一行中输出a和b的总和,并在输入中输出每行的一行输出。

样本输入:

1 5
7 2

示例输出:

6
9

我的代码:

#include "iostream"
using namespace std;

int main(){      
    int a=1,b;    
    do
    {
        cin>>a;
        if(a==EOF)
            break;
        cin>>b;
        cout<<a+b;
    }while(1);
    return 0;
}

这些是我的错误:

Main.cc: In function 'int main()':
Main.cc:8: error: 'EOF' was not declared in this scope

2 个答案:

答案 0 :(得分:2)

cin>>a;在到达文件末尾时未将a设置为任何内容,它会更改流的状态。您可以通过检查cin本身的状态来检查文件的结尾:

    cin >> a;
    if (!cin) 
        break;

答案 1 :(得分:0)

使用流的惯用方法:

int a, b;

if (!(std::cin >> a >> b)) { /* error! */ }

std::cout << a + b << std::endl;

如果你处于循环中,你甚至可以说:

while (std::cin >> a >> b)
{
  // do stuff
}