C++ 需要使用“终止程序”;输入“;钥匙 vectorvar; 智力麻木; 库特南){ 变量推回(麻木);} 插入排序(var); 对于(int a=0;a

C++ 需要使用“终止程序”;输入“;钥匙 vectorvar; 智力麻木; 库特南){ 变量推回(麻木);} 插入排序(var); 对于(int a=0;a,c++,C++,来说,通常的方法是使用EOF,例如,从键盘发送Ctrl-D应该适用于cin。您不需要输入键。但当然,您可以使用getline(),并在空行终止。创建一个名为running的bool,将其设置为true。将while循环的条件更改为 vector<int> var; int numb; cout<<"Enter numbers: "; //While loop for inputting integers with space and pushing it to vecto

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

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

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循环中,检查输入是否是enter键(它将有一个ASCII值,查找它,它可能是13)。当enter键被输入到程序时,将这个正在运行的bool设置为false

while (yourcondition && running == true)

这将导致while循环的下一次迭代失败,并继续执行程序的其余部分,例如,您可以在返回0的情况下退出。

peek
查看下一个字符,而不将其从缓冲区中拉出。
'\n'
是编译目标字符集的换行符并编码g、 因此,该代码允许:

  • 没有要输入的数字,以Enter结尾
  • 要输入的一个或多个数字,以Enter结尾

  • 我们的教授说程序只能用回车键终止。有什么解决办法吗?不使用Ctrl-D或Z?不,不,不!不需要运行来与true比较:)@AlexanderChernin我同意。我终于发现人们这样做是为了提高可读性。我会说,然后将变量重命名为更具对话性的变量,如
    isRunning
    havenotquit
    或其他什么。(哦,在某些语言中,这很重要,但使用“==true”通常是一个bug。)
    if (input == enter)
        running = false;
    
    while (cin.peek() != '\n' && cin >> numb) {
        var.push_back(numb);
    }