Ответ 1
Угадав, вы открываете файл в переведенном режиме, возможно, под Windows. Когда вы просто пытаетесь найти конец файла, текущая позиция не учитывает перевод строки. Конец строки (во внешнем файле) помечен парой "\ r\n" - но когда вы ее прочитали, это преобразование в "\n". Когда вы используете getline
для чтения по одной строке за раз, все \n
все также отбрасываются, поэтому даже в системе (например, Unix/Linux), которая не выполняет никакого перевода с внешнего на внутреннее представление, вы все равно можете ожидать тех для разных размеров.
И снова, вы действительно должны забыть, что new []
существует вообще. Если вы хотите прочитать весь файл в строке, попробуйте что-то вроде этого:
std::stringstream continut;
continut << fisier.rdbuf();
continut.str()
- это std::string
, содержащий данные из файла.