Разве std :: endl не является избыточным?

Промывка происходит в следующих случаях:

  • станд :: сегг
  • станд :: CIN
  • завершение программы
  • во многих реализациях стандартный вывод буферизуется строкой, что означает, что «\ n» в любом случае сбрасывается

Похоже, что в большинстве обычных программ std :: endl не нужен, но используется почти везде.

-3

Решение

Так кажется в большинстве обычных программ, std::endl в основном не требуется, но он используется почти везде.

Нет, это не так избыточный, с момента реализации промывки вдоль '\n' не предписано стандартом. Это просто поведение конкретной реализации, в то время как поведение std::endl всегда четко определен.

4

Другие решения

станд :: сегг

Но что, если я не хочу писать в stderr, а скорее в stdout?

станд :: CIN

Но что, если я просто хочу дать пользователю некоторое обновление статуса и не хочу ничего вводить?

завершение программы

Как и выше, что, если я хочу что-то сказать пользователю до программа выполнена?

во многих реализациях стандартный вывод буферизуется строкой, что означает, что «\ n» все равно сбрасывается

Но как насчет платформ, которые этого не делают? Независимо от того, существует ли такая платформа в настоящее время, я хочу, чтобы мой код работал так, как задумано в стандарте, а не как «meh, вероятно, будет хорошо во всех реализациях».

Если все вышеперечисленное применимо (на самом деле всегда применяется четвертый пункт), вам необходимо промыть «вручную». Если флеш обрабатывается одним из первых трех, вы этого не сделаете.

11

По вопросам рекламы [email protected]