C++ 继续读取数字,直到输入为空

C++ 继续读取数字,直到输入为空,c++,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 << "

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

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
如果有不清楚的地方,请告诉我,我会努力改进。
感谢您的帮助:

在您的代码中,我看不到对换行符的检查。看看我的代码,它似乎工作得很好。也许这就是你正在寻找的解决方案

#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;
}

请看这里:。这可能对你的问题也有帮助。请注意,输入“\n”实际上被cin>>忽略,除非您更改标准定界符。我知道它被忽略,我也知道您可以使用noskipws更改它,但我认为如果没有输入任何内容,则可以识别某些内容,这正是我要查找的!非常感谢,达科恩。我不能投赞成票-需要15个声望: