![](/img/trans.png)
[英]How to get user input from a prompt(terminated by press ENTER) in c++?
[英]when inputing data from keyboard, how to complete input when user press “enter” in C++?
问题是,在C ++中,我希望从用户那里获取数字并将每个int放到一个向量中。 所以我写下面的代码:
#include <iostream>
#include <vector>
using namespace std;
vector<int> readVals()
{
vector<int> read;
int temp;
cin >> temp;
while (!cin.fail() && !cin.eof())
{
read.push_back(temp);
cin >> temp;
}
return read;
}
void printVals(vector<int> v)
{
if(v.size() >= 1)
{
for (vector<int>::size_type i = 0; i < v.size()-1; i++ )
{
cout << v[i] << " ";
cout << v[v.size()-1] << "\n";
}
}
}
int main()
{
vector<int> a = readVals();
printVals(a);
return 0;
}
然后,我编译它来创建一个a.out文件。 我在in1
有一些数字。 当我执行命令时: a.out < in1
,我得到了我想要的东西。 但是当我希望数据可以由用户输入时我很困惑。 用户可以输入一些数字并按Enter键传入数字。但是,我使用了getline()
,失败了。 !="\\n"
,失败了。 每当我按Enter键时 ,似乎程序仍在等待更多数字而不打印结果。 有没有人可以帮我成功? 谢谢!
你的循环正在等待cin处于“失败”状态或文件末尾。 击中输入既不会。 您可以通过在Windows上按CTRL-Z或在unix / mac上按CTRL-D来结束输入。 这些将“文件结束”字符发送给cin。 或者,将循环条件更改为“监听”某些特定输入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.