1. ホーム
  2. c++

[解決済み] C++でファイルから一字一句読み取る

2022-02-04 03:09:12

質問内容

この関数は、ファイルを単語単位で読み込む必要があります。 最後の単語まで実行され、そこで実行が停止します。

void readFile(  )
{
    ifstream file;
    file.open ("program.txt");
    string word;
    char x ;
    word.clear();

    while ( ! file.eof() )
    {
        x = file.get();

        while ( x != ' ' )
        {
            word = word + x;
            x = file.get();
        }

            cout<< word <<endl;
            word.clear();

    }
}

どなたか、何が問題で、どうすれば解決するのか、お分かりになりますか?

どのように解決するのですか?

まず、ループさせないこと while (!eof()) というのも、このメソッドでは eofbit が設定されるまで は、ファイル終端による読み込みの失敗です。

次に、通常の入力演算子 >> は空白で区切るので、"words" を読み取るのに使うことができます。

std::string word;
while (file >> word)
{
    ...
}