Alihandro
Alihandro

STL считывание из файла. Проблема с переходом внутри файла.

Читаю из файла в массив. Как понимаю, файл - последовательность байтов, символ перевода каретки \n такой же байт.

указатель на позицию чтения устанавливаю с помощью
F.temp.seekg(pt->offset, std::ios_base::beg); // fstream temp

читаю:
F.temp.getline(str, SizeSeg); // str - символьная строка, sizeSeg - кол-во читаемых байтов.

Часть первой строки читает нормально. Когда я хочу перейти к следующей строке, с помощью seekg перемещаю указатель на нужное количество байт. Проблема в том, что когда я перемещаю на большее количество байт в строке, после символа \n, функция getline не читает ничего, возвращает пустую строку.

Если длина строки 100 символов (без символа \n) то функция seekg(102, ios::beg) должна перевести указатель на следующую строку по идее?

// на всякий случай часть кода
for (unsigned int i = 0; i < cIter; i++, pt = pt->next) {
str = new char[SizeSeg];
F.temp.seekg(pt->offset, std::ios_base::beg);
F.temp.getline(str, SizeSeg);
}

СС
С С

getline и сам переставит указатель на новую строку.
зачем с длинной строки запариваться?

Иван
Иван

>Если длина строки 100 символов (без символа \n) то функция seekg(102, ios::beg) должна перевести указатель на следующую строку по идее?
По идее - на следующий символ после начала следующей строки. Счет идет с 0.
str = new char[SizeSeg];
F.temp.getline(str, SizeSeg);
потенциальная ошибка: getline записывает до SegSize+1 символов (0 тоже куда-то записать надо).

Похожие вопросы
С++. Проверка при считывании из файла.
Двумерный массивы STL
считывание из файла в С
STL vector и stringsream
seagate 9zf2a5-500 1tb проблема в считывании файлов
Проблема с считыванием диска
посимвольное считывание текстового файла си
Как при считывании файла потоком ifstream считать файл до конца? C++
потоковое считывание столбцов из файла с++
имея файл .stl как получить чертеж?