С ссылкой Это манипулятор ввода-вывода только для вывода.
std::endl
Вставляет символ новой строки в выходную последовательность os и сбрасывает ее, как если бы она вызывалась os.put(os.widen('\n'))
, а затем os.flush()
.
Когда использовать:
Этот манипулятор может быть использован для немедленного создания линии вывода,
, например.
при отображении вывода из долговременного процесса, ведения журнала активности нескольких потоков или активности ведения журнала программы, которая может неожиданно произойти сбой.
Также
Явный поток std :: cout также необходим перед вызовом в std :: system, если порожденный процесс выполняет любой экран I / вывода. В большинстве других обычных интерактивных сценариев ввода-вывода std :: endl избыточен при использовании с std :: cout, потому что любой вход из std :: cin, вывод в std :: cerr или завершение программы заставляет вызов std :: cout .промывать(). Использование std :: endl вместо '\n', которое поощряется некоторыми источниками, может значительно ухудшить производительность вывода.