继续阅读数字直到空输入

时间:2014-08-27 08:56:08

标签: c++

我想制作一个程序,一直读取数字,直到有空输入。 我的意思是:

12 <ENTER> 
24 <ENTER> 
<ENTER> 
Sum of these numbers is: 36

到目前为止,我已经得到了这个:

#include<iostream>

using namespace std;

long double sum = 0, num = 0;
string junk;

int main(){
    cout << "Witaj w programie do liczenia sredniej!\n\n";
    while (true){
        while (cin >> num){ //stops when you input a char
            sum += num;
        }
        cin.clear();
        getline(cin, junk);
        cout << "\nSuma tych liczb to: " << sum << "\n\n";
    }
    return 0;
}

它的工作原理如下:

12<ENTER>
24<ENTER>
q<ENTER>
Sum of these numbers is: 36

如果有什么不清楚,请告诉我,我会尝试改进。 任何帮助表示赞赏:)

1 个答案:

答案 0 :(得分:2)

在你的代码中,我看不到新行的检查。看到我的代码,似乎工作正常。也许这是你正在寻找的解决方案。

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

int main()
{
    int sum = 0;
    string line;

    while (getline(cin, line))
    {
        stringstream ss(line);
        int tmp;

        if (ss >> tmp)
        {
            sum += tmp;
        }
        else
        {
            break;
        }
    }

    cout << "\nSuma tych liczb to: " << sum << "\n\n";

    return 0;
}