2017-09-22 29 views
0

このプログラムのwhileループで入力を終了するにはどうすればいいですか? たとえば、1 2 3 4 5と入力してEnterキーを押すと何も起こらず、プログラムは続行されません。whileループで入力を終了する

注:割り当てでは、ctrl + Dは入力を終了しますが、機能していないと言いますが、それはそれ自体で行う必要があるかわかりません。 ありがとう!

#include <iostream> 
#include <vector> 
#include <stdexcept> 
using namespace std; 

int main() 
{ 
    int smallest, second_Smallest,a; 
    vector<int> v; 
    cout << "Enter the numbers in random order: " << endl; 
    while (cin >> a) 
    { 
     v.push_back(a); 
    } 

    if(v[0]<v[1]) 
    { 
     smallest = v[0]; 
     second_Smallest = v[1]; 
    } 
    else 
    { 
     smallest = v[1]; 
     second_Smallest = v[0]; 

    } 
    for(int i=1; i<v.size(); i++) 
    { 
     if(smallest>v[i]) 
     { 
      second_Smallest = smallest; 
      smallest = v[i]; 
     } 
     else if(v[i] < second_Smallest) 
     { 
      second_Smallest = v[i]; 
     } 
    } 

    cout << second_Smallest; 
    return 0; 
} 

答えて

0

プログラムは正常に動作します。単に出力ウィンドウを閉じすぎて出力を確認できませんでした。 Ctrl + F5キーではなく、F5キーでアプリケーションを起動します。このようにして、プログラムの終了後に出力ウィンドウが開いたままになります。

CTRL-Dがwhileループを終了させる理由は、stdinがCTRL-Dをファイルの終わりとして解釈するためです。参照番号https://stackoverflow.com/questions/4563617

関連する問題