2016-10-20 5 views
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を取得します。私はこれを行うことができる方法はありますか?なぜ私が取るアプローチはうまくいかないのですか?

答えて

関連する問題