需要使用“enter”键终止程序

时间:2016-02-11 11:05:01

标签: c++

vector<int> var;
int numb;
cout<<"Enter numbers: ";
//While loop for inputting integers with space and pushing it to vector
while(cin>>numb){
        var.push_back(numb);}
insertionSort(var);
for(int a=0;a<var.size();a++){
    cout<<var[a]<<" ";
}

如何使用“回车键”终止while循环而不使用Ctrl + Z?

3 个答案:

答案 0 :(得分:1)

peek查看下一个字符而不将其拉出缓冲区。 '\n'是编译目标字符集和编码的换行符。所以,这段代码允许:

  1. 不输入任何数字,以 Enter
  2. 结尾
  3. 要输入的一个或多个号码,以 Enter
  4. 结尾

    while (cin.peek() != '\n' && cin >> numb) {
        var.push_back(numb);
    }
    

答案 1 :(得分:0)

正常的方法是使用EOF,例如从键盘发送Ctrl-D应该适用于cin。您不需要输入密钥。但是,当然,您可以使用getline(),并在空行上终止。

答案 2 :(得分:0)

创建一个名为running的bo​​ol,将其设置为true。将while循环的条件更改为

while (yourcondition && running == true)

在你的while循环中,检查输入是否是回车键(它将具有ASCII值,查找它,它可能是13)。当输入密钥输入到您的程序时,将此运行bool设置为false。

if (input == enter)
    running = false;

这会导致while循环的下一次迭代失败,并继续执行程序的其余部分,例如,可以使用return 0;退出。