Так что я пытаюсь читать из текстового файла и печатать каждую строку, окруженную двумя строками. Например, это моя программа:Выход не печатается в правильном порядке
string command;
int main()
{
while (!cin.eof()) {
while (getline(cin, command)) {
cout << "Can't add element : " << command << " : invalid parameter." << endl;
}
}
}
Входной файл в виде 3-х чисел каждой строки, например:
1 1 1
2 2 2
5 4 9
Таким образом, вывод должен быть:
Can't add element : 1 1 1 : invalid parameter.
Can't add element : 2 2 2 : invalid parameter.
Can't add element : 5 4 9 : invalid parameter.
Вместо этого он печатает как:
: invalid parameter.1 1 1
: invalid parameter.1 2 2
: invalid parameter.5 4 9
Для жизни я не могу понять, почему это происходит. Любая помощь?
Похоже, вы читаете файл с концами строк CRLF в системе с окончанием строки LF. – chris
Не используйте 'while (! Cin.eof())'. Это не всегда так. К счастью, ваш код _also_ имеет правильный цикл, поэтому он может просто удалить неверный 'while'. –
Связанный: [Почему iostream :: eof внутри условия цикла считается неправильным?] (Http://stackoverflow.com/q/5605125) –