0
は、ここに私のコードです。(私は重複不明であったと記さ全く別の質問をして、原因不慣れに、私はそれがこの1と同じように見えるので、それを編集します。そのため申し訳ありません。)「Ctrl + Z」で送信された文字を無視してistreamからデータを読み取る方法はありますか?
#include<iostream>
#include<vector>
using std::cin;
using std::cout;
using std::endl;
using std::vector;
int main()
{
int i;
vector<int> v1;
vector<int> v2;
cout << "enter elements for v1" << endl;
while (cin >> i) {
v1.push_back(i);
}
cout << "enter elements for v2" << endl;
//I try to ignore character(s) sent by "Ctrl+Z"
cin.clear();
/*cin.sync();*/
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\0x1A');
cin.ignore(std::numeric_limits<std::streamsize>::max(), EOF);
cin >> i;
while (cin >> i) {
v2.push_back(i);
}
for (auto c : v1) {
cout << c << " ";
}
cout << endl;
for (auto c : v2) {
cout << c << " ";
}
cout << endl;
}
1 2 Ctrl + Zを押してv1の要素を追加し、3を押します。4 Ctrl + Zを押してv2の要素を追加しますが、最後に空のベクトルv2を取得します。私はこれを行うことができる方法はありますか?なぜ私が取るアプローチはうまくいかないのですか?