1

アプリケーションのデータをファイルから読み取ったところ、最近動作しなくなりました。動作が停止したのは、Notepad ++ から Sublime Text 2 に切り替えたときと一致するように感じます...とにかく、データを読み込むコードは次のとおりです。

    std::ifstream stream;
    stream.open("parsing_model.txt");

    char ignore_char;
    std::string model_class;
    int parsing_model;
    while (stream >> model_class >> ignore_char >> parsing_model)
    {
        // snip
        // doesn't even make it into a single run of this while loop.
    }

私のデータは次のように編成されています

Item1, 12
Item2, 4
foo, 42
bar, 1

それはテキストエンコーディングの何かですか?これに対してコードを堅牢にし、問題を解決するにはどうすればよいですか? このコードは、最近まで何ヶ月も完全に機能していました。ありがとう

4

1 に答える 1

0

ストリームを使用する前に、ストリームが良好な状態にあるかどうかを確認してください。

stream.open("parsing_model.txt");
if (stream.good()) {
    //... read the stream
} else {
    std::cerr << "failed to open input file\n";
}

失敗した場合は、現在の作業ディレクトリが入力ファイルを保存した場所と同じであることを確認してください。Windows で実行しているようですので、このコマンドを使用して現在のディレクトリを表示できるはずです。

system("dir & pause");
于 2012-08-12T16:42:53.813 に答える