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 回答