大家好,我在尝试实现程序的回车键部分时遇到了麻烦
int list[50];
int i = 0;
while (/*enter key has not been pressed*/&& i < 50){
cin>>list[i];
i++;
}
它应该如何工作,它将采用由空格分隔的整数并将它们存储到数组中。当按下回车键时,它应该停止接受输入。
PS我在手机上发布这个,这就是我无法正确格式化文本的原因。如果语法有任何问题,可能只是忽略设置,因为我只关心“回车键”部分。
答案 0 :(得分:1)
你可以使用一个字符串流,基本上你把整行读成一个字符串,然后你开始从那个字符串读取整数到你的数组。
当你按Enter键时,读取一个字符串将会终止,所以我认为这对你有用
#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;
}
请注意,不会测试用户的错误输入(如字母而非数字)。
答案 1 :(得分:0)
这里的关键是使用break
关键字。
int list[50];
int i = 0;
int input;
while (i < 50){
cin >> input;
if(input == '\n') break;
list[i] = input;
i++;
}
我猜你是初学者,所以将int
与char
进行比较对你来说可能有点奇怪。基本上,所有chars
也是ASCII形式的int
。