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