Функция seekg () не работает
Я пытаюсь написать простой код, который будет читать текстовый файл, но дважды читает первую строку. Я думал, что это будет так просто, как-то так
std::ifstream file;
file.open("filename", std::ios_base::in);
std::string line;
std::getline(file, line);
// process line
file.seekg(0, ios::beg);
while (std::getline(file, line))
{
// process line
}
Однако поиск должен завершиться неудачей, так как первая строка не обрабатывается дважды. Есть идеи почему?
ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: Это не проблема, с которой я столкнулся, а упрощенная версия, чтобы не вставлять код нескольких классов и несколько функций. Настоящая проблема заключается в том, что указатель файла передается нескольким функциям в нескольких классах. Первая функция может вызываться или не вызываться и читает первую строку файла. Вторая функция читает весь файл, но сначала должна вызвать seekg, чтобы убедиться, что мы находимся в начале файла.
Я просто использовал приведенный выше код, чтобы упростить обсуждение.