当按enter键时,停止向数组中输入值

Stop entering values into array when enter is pressed

本文关键字:数组 输入 enter 键时 当按      更新时间:2023-10-16

大家好,我在尝试实现程序的回车键部分时遇到了麻烦

int list[50];
int i = 0;
while (/*enter key has not been pressed*/&& i < 50){
  cin>>list[i];
  i++;
  }

它的工作原理是,它将接受由空格分隔的整数并将它们存储到数组中。当按下回车键时,它应该停止接受输入。

PS我从我的手机发布这就是为什么我不能正确格式化文本。如果有任何语法问题,它可能只是被忽略设置,因为我只关心"enter key"部分。

你可以使用字符串流,基本上你将整行读入字符串,然后开始从字符串中读取整数到你的数组中。
当你按回车键时,读取字符串将终止,所以我认为这对你来说是可行的

#include <iostream>
#include <string>
#include <sstream>
using namespace :: std; // bad idea, I am just lazy to type "std" so much
int main (){

    const int arrSize = 5;
    int arr [arrSize] = {0}; //initialize arr zeros
    string line;
    getline(cin,line);

    cout <<"you entered " << line<<endl; // just to check the string you entered
    stringstream ss (line);
    int i = 0;
    while ( ss>>arr[i++] && i < arrSize); // this might look a bit ugly

    for (int i =0; i < arrSize; i++) // checking the content of the list
        cout<<arr[i]<<" ";
    getchar();

    return 0;

}

请注意,它不会测试用户的错误输入(如字母而不是数字)。

这里的关键是使用break关键字。

int list[50];
int i = 0;
int input;
while (i < 50){
  cin >> input;
  if(input == 'n') break;
  list[i] = input;
  i++;
}

我猜你是编程新手,所以比较intchar对你来说可能有点奇怪。基本上,所有chars也都是ASCII形式的int