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

Форма окна представляет собой контейнер для пользовательских элементов управления.

366
задан Daniel Mošmondor 6 December 2017 в 21:14
поделиться

10 ответов

Я бы использовал слово « r etur n », чтобы помнить, что r стоит перед n.

1012
ответ дан Tomas Kubes 6 December 2017 в 21:14
поделиться

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

Строка, содержащая «\ r \ n» для не-Unix платформ или строка, содержащая "\ n" для платформ Unix.

52
ответ дан BrunoLM 6 December 2017 в 21:14
поделиться

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

20
ответ дан Otávio Décio 6 December 2017 в 21:14
поделиться

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

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 Электронная подача

34
ответ дан Sun 6 December 2017 в 21:14
поделиться

В любом языке .NET предпочтительным является Environment.NewLine.

8
ответ дан Esteban Araya 6 December 2017 в 21:14
поделиться

\r\n для Windows будет хорошо.

4
ответ дан Brad 6 December 2017 в 21:14
поделиться

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

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

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

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

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

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

5
ответ дан Martin York 6 December 2017 в 21:14
поделиться

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

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

4
ответ дан bhamby 6 December 2017 в 21:14
поделиться

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

2
ответ дан NirMH 6 December 2017 в 21:14
поделиться

\r\n

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

typewriter from wikipedia * Изображение из Википедии

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

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

3
ответ дан Hastur 6 December 2017 в 21:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: