Я прочитал некоторые данные для своего приложения из файла, и оно недавно перестало работать. Мне кажется, что время, когда он перестал работать, соответствует тому моменту, когда я переключился с 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

Это что-то в кодировке текста? Как я могу сделать свой код устойчивым к этому и решить мою проблему? Этот код до недавнего времени работал месяцами. Спасибо

1
Jim 12 Авг 2012 в 18:16

1 ответ

Лучший ответ

Перед использованием убедитесь, что поток находится в хорошем состоянии.

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

В случае сбоя убедитесь, что текущий рабочий каталог совпадает с местом, где вы сохранили входной файл. Кажется, вы работаете в Windows, поэтому вы можете использовать эту команду для просмотра текущего каталога.

system("dir & pause");
0
jxh 12 Авг 2012 в 20:42