2017-05-03 125 views
-2

正如標題所說,我不想使用系統(「暫停」),因爲我不想開發一個壞習慣。 我不知道爲什麼它保持關閉,即使我有cin.get();即使我有cin.get();爲什麼我的應用程序關閉?

#include <iostream> 

using namespace std; 


float medel(int v[], int n) 
{ 
    float res = 0.0; 

    for (int i = 0; i < n; i++) 

    { 
     cin >> v[i]; 

     res += ((double)v[i]/n); 
    } 

    return res; 


} 

int main() { 
    const int num = 10; 
    int n[num] = { 0 }; 

    cout << "Welcome to the program. Enter 10 positive numbers: " << endl;; 
    cin.get(); 
    cout << "The average of ten numbers entered is: " << medel(n, num) << endl; 
    cin.get(); 
    return 0; 
} 
+0

char x,while(x!='q'){cin.get();} –

+3

你是如何學習C++的? 'cin.get();'不會讀取10個數字,也不會將其讀入任何東西。聽起來你可以使用[良好的C++書](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) – NathanOliver

回答

4

cin.get()從輸入流中消耗單個字符。

如果在那裏沒有,程序將阻止等待一個,這是你的期望。

然而,有一個存在:從換行符你最後cin >> v[i]手術後回車按鍵

Don't use cin.get() to keep your application running at the end, anyway

順便說一句,你的程序的邏輯是有缺陷的;你似乎會提示輸入正數,然後在實際詢問任何輸入之前引入輸出。

怎麼是這樣的:

int main() 
{ 
    const int num = 10; 
    int n[num] = { 0 }; 

    cout << "Welcome to the program. Enter " << num << " positive numbers: " << endl; 
    const float average = medel(n, num); 
    cout << "The average of the numbers entered is: " << average << endl; 
} 

找到一種方法你的程序,以保持終端窗口打開,如果它是不是已經之外。這不是你的計劃的工作。

+0

我推薦使用'cin.ignore',如'cin.ignore(100000,'\ n')'。這將忽略字符,直到輸入換行符。 –

+2

@ThomasMatthews:我不知道。在這裏沒有必要使用這樣的技巧 –

+0

@BoundaryImposition我想問你,那是漫長的一天。 – RH6

相關問題