问题是,在 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,程序似乎仍在等待更多数字而不打印结果。有没有人可以帮助我成功?谢谢!