У вас есть классическая базовая ошибка при чтении файла:
while(!File.eof() )
{
getline(File, Line); // If this line fails (ie you reach EOF)
// Then you still print out the Line (whoes value is undefined)
_tcout << Line << endl;
}
Помните, что второй-последний getline будет читать (но не включая) EOF.Последний звонок будет читать только EOF.Эта ошибка обычно означает, что вышеприведенный цикл напечатает последнюю строку дважды (в зависимости от того, как установлена строка).
Реальное решение - поместить getline в while.
while(getline(File, Line))
{
_tcout << Line << endl;
}
Если getline () читает EOF, тогда он устанавливает флаг в File.Результатом getline () является ссылка на объект потока (File), когда он используется в логическом контексте, он преобразуется в значение, которое можно преобразовать в true, если все в порядке, или false, если что-то пошло не так (как в EOF),Это будет означать, что тело цикла не будет введено, когда вы достигнете EOF.
Другая вещь, которую вам нужно посмотреть, это свойства терминала и формат файла. В случае ошибки, он будетвыглядят как символы не совпадают ..