Есть два способа записать перевод строки - std::endl и . В чем разница? Когда что использовать?
Ответ std::endl реализован как os.put(os.widen(’ ’)) os.flush() . Соответственно всё отличие в том, что endl вызывает flush(), а - нет. Вызов flush() очищает буфер потока, и если выполнять его слишком часто, он может ощутимо замедлить выполнение программы. Также надо помнить что std::endl не нужен там где стандартная библиотека сама вызывает cout.flush(): при завершении программы при чтении из std::cin при записи в std::cerr Некоторые реализации буферизуют вывод в stdout построчно, и запись сама будет вызывать flush. Записать буфер можно явно, манипулятором std::flush, например std::cout << "Calculating XYZ ... " << std::flush wait_XYZ() std::cout << "OK<br>" Ссылки Описание endl на cppreference.com