Напоминание -\r\n или\n\r?

Я просто не могу их запомнить. Итак, каков правильный способ правильного завершения старомодных линий ASCII?

Ответ 1

Я бы использовал слово " r etur n ', r перед n.

Ответ 2

Если вы используете С#, вы должны использовать Environment.NewLine, что соответствует MSDN:

Строка, содержащая "\ r\n" для платформ, отличных от Unix, или строку, содержащую "\n" для платформ Unix.

Ответ 3

Новая строка зависит от вашей ОС:

DOS & Windows: \r\n 0D0A (hex), 13,10 (decimal)
Unix & Mac OS X: \n, 0A, 10
Macintosh (OS 9): \r, 0D, 13

Подробнее здесь: https://ccrma.stanford.edu/~craig/utility/flip/

Если вы сомневаетесь, используйте любой бесплатный просмотрщик/редактор шестнадцатеричных файлов, чтобы увидеть, как файл кодирует новую строку.

Для меня я использую следующее руководство, чтобы помочь мне запомнить: 0D0A =\r\n = CR, LF = ca rr iage r eturn, li n e feed

Ответ 4

Последовательность CR (возврат каретки) - LF (подача строки). Помните матричные принтеры? В точку. Итак - правильный порядок:\r\n

Ответ 5

В любом .NET langauge предпочтительнее Environment.NewLine.

Ответ 6

Будьте осторожны с этим вручную.
На самом деле я бы посоветовал не делать это вообще.

В действительности мы говорим о последовательности завершения строки LTS, которая специфична для платформы.

Если вы откроете файл в текстовом режиме (то есть не бинарный), потоки преобразуют "\n" в правильный LTS для вашей платформы. Затем, когда вы читаете файл, преобразуйте LTS обратно в "\n".

В результате, если вы напечатаете "\ r\n" в файл Windows, вы получите последовательность "\ r\r\n" в физическом файле (посмотрите с шестнадцатеричным редактором).

Конечно, это настоящая боль, когда речь идет о передаче файлов между платформами.

Теперь, если вы пишете сетевой поток, я бы сделал это вручную (как это обычно называют большинство сетевых протоколов). Но я бы удостоверился, что поток не делает никакой интерпретации (поэтому двоичный режим был подходящим).

Ответ 7

\r\n для Windows будет отлично.

Ответ 8

Из Wikipedia (вы можете прочитать, что правильно для вашей ОС в этой статье):

Системы на основе ASCII или совместимые набор символов используют либо LF (Line feed, '\n', 0x0A, 10 в десятичной системе) или CR (Возврат каретки, '\ r', 0x0D, 13 в десятичная), или CR по LF (CR + LF, '\ r\n', 0x0D0A).

Ответ 9

\r\n

Неверно сказать, что я помню это, потому что это противоположность пишущей машинки, которую я использовал.
Ну, если это было нормально, мне не нужно было это помнить... :-)

пишущая машинка из википедии * Изображение из Википедии

В пишущей машинке, когда вы закончите цифру строки, вы используете рычаг возврата каретки, который перед тем, как сделать рулон барабана, новой строки и после этого, позволит вам вручную управлять возвратом каретки.

Вы можете слушать из этой записи с freesound.org звук подачи бумаги в начале и примерно в -1: 03 секунд от конца, после предупреждения колокола о конце линейного звука барабана, который катится и после возврата каретки.

Ответ 10

если вы используете С#, почему бы не использовать Environment.NewLine? (я предполагаю, что вы используете некоторые объекты записи файлов... просто передайте его Environment.NewLine и обработайте правильные терминаторы.