在while循环中结束输入

时间:2017-09-22 02:09:37

标签: c++

我将如何继续在此程序中结束while循环中的输入? 例如,如果我输入1 2 3 4 5并按回车键,则没有任何反应,程序也不会继续。

注意:在分配上它说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;
}

1 个答案:

答案 0 :(得分:0)

您的程序运行正常。它只是关闭输出窗口太快,无法查看输出。使用CTRL + F5而不是仅使用F5开始运行应用程序。这样,输出窗口将在程序终止后保持打开状态。

为什么CTRL-D终止while循环的解释是因为stdin将CTRL-D解释为文件结尾。请参阅参考https://stackoverflow.com/questions/4563617