Размышление о UNIX, Windows и Mac и выходном потоке (как двоичном, так и текстовом),
Что означает std::endl
, т.е. <CR><LF>
, <LF>
или <CR>
? Или это всегда одно и то же независимо от платформы/компилятора?
Причина, по которой я спрашиваю, заключается в том, что я пишу TCP-клиент, который говорит о протоколе, который ожидает, что каждая команда закончится в <CR><LF>
. Поэтому мне интересно, использовать ли в моих потоках std::endl
или "\r\n"
.
EDIT: Хорошо, поэтому один сброс буфера, а другой нет. Я понимаю. Но если я выводя текст в файл, '\n'
равно <LF>
или он преобразуется в <CR><LF>
в Windows и <LF>
в Unix или нет? Я пока не вижу ясного ответа.