我想制作一个程序,一直读取数字,直到有空输入。 我的意思是:
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
如果有什么不清楚,请告诉我,我会尝试改进。 任何帮助表示赞赏:)
答案 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;
}