2

一連の単語を取得し、それらをベクトルに入れて、それらを処理するプログラムを作成しようとしています。機能する1つの方法を見つけました。それは次のとおりです。

{
    vector<string> inputs;
    string Input;
    cin >> Input;
    while (Input != "Quit") 
    {
        inputs.push_back(Input);
        cin >> Input;
    }
}

ただし、別の方法を使用してそれを実行しようとしています。

{
    istream_iterator<string> ii(cin);
    istream_iterator<string> eos;
    vector<string> inputs(ii, eos);
}

しかしQuit、入力ストリームを終了して単語をベクトルに入れる平均的な EOF を作成する方法がわかりません。"Quit"文字列をストリーム ターミネータとして機能させるにはどうすればよいですか?

4

1 に答える 1

1

EOFのように定義さ-1cstdioます。#undef EOFandを試すこともできますが、これはおそらく符号付き整数および/または に#define EOF "Quit"依存する実装を壊します。なので、基本的には放っておきましょう。EOF-1

于 2012-07-10T19:27:40.040 に答える