ifstream
имеет функцию getline
, он принимает char*
в качестве первого параметра и максимальную длину в качестве второго.
ifstream
также имеет operator>>
, который вы должны использовать для ввода, но он будет читать до пробела, а это не то, что вам нужно.
::getline
, который вы используете, также должен работать, но это при условии, что с потоком все в порядке, что, как упоминалось ранее, вы не проверяете правильно. Вы должны проверять ошибки после вызова, потому что, если вы достигнете EOF или возникнет ошибка, вы не узнаете, пока не закончится весь цикл.
Кроме того, что находится в файле? Может быть, то, что вы получаете, является правильным результатом?