2014-08-27 34 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