Использование std::cout видел только в книжках и в любительских поделках.
В реальных программах используют пользовательские коллбэки.
А в этих коллбэках реализовывают вывод как хотят. Или си функциями или своими.
По вопросу. Я бы использовал \n
И в конце чтобы гарантированно вывелось сообщение
std::cout.flush();
Это нужно использовать только для 100% мультиплатформенности. Так как например в Windows никакой flush не нужен, и соответственно достаточно простого \n, а вдругих платформах всё может быть подругому.