2014-08-27 49 views
-5

我想制作一个程序,保持阅读数字,直到有一个空输入。 我的意思是以下几点:保持阅读数字,直到一个空输入

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 

如果有什么不清楚让我知道,我会尽力改善。 任何帮助赞赏:)

+4

欢迎来到Stackoverflow。你有个问题?好!我们在这里解决它。但你到目前为止尝试过什么? – TobiMcNamobi 2014-08-27 08:57:24

+2

这个问题很清楚。你所需要的只是编写你自己的代码。 – 2014-08-27 08:57:58

+1

我试图找到解决方案,但我不能。我会添加我自己的代码 – 2014-08-27 08:59:57

回答

0

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

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

这正是我一直在寻找!非常感谢达科恩。我不能投票 - 需要15声望:( – 2014-08-27 10:17:21