Если использовать просто "\n" или "\r\n" для переноса строк и не дергать fflush (endl его дергает автоматически), то в многопоточной программе вывод в консоль может быть в непредсказуемое время. А то и вовсе при завершении программы.
Да и не в многопоточной тоже. Например, если в цикле каком-нибудь в cout данные пихать.