問題は、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、プログラムはまだ数字を待っていて、結果を出力していないようです。誰もがそれを成功させるのを手伝ってくれますか? ありがとうございました!