Что такое различие между \n и \r? [дубликат]

5
задан Community 23 May 2017 в 12:26
поделиться

6 ответов

\r возвращает курсор к началу строки, НЕ к следующей строке. Когда вы используете \nв Linux, \r подразумевается, в windows - нет.

Использование \r в Unix-подобных системах может привести к перезаписи одной и той же строки.

11
ответ дан 18 December 2019 в 07:08
поделиться

Прочтите Великий раскол новой линии , в нем все подробно объясняется с большим юмором.

1
ответ дан 18 December 2019 в 07:08
поделиться

Нет, это не так.Современные текстовые редакторы часто относятся к ним так же, потому что их прежнее использование не имеет большого смысла для цифровых текстовых процессоров.

Например, \ r буквально означает «вернуться в начало строки». Хотя это могло быть полезно для пишущей машинки, если вы просто хотели перезаписать все в этой строке, такая функциональность не имеет большого смысла для цифрового шрифта.

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

Telnet является одним из примеров, когда оба символа все еще используются таким образом.

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

0
ответ дан 18 December 2019 в 07:08
поделиться

Советую вам прочитать это.

Вкратце, новая строка в Windows - это "\r\n", а новая строка в Unix - это просто "\n" (и, чтобы усложнить жизнь, новая строка в старых Mac - это "\r")

8
ответ дан 18 December 2019 в 07:08
поделиться

Ах, старые времена пишущей машинки ...

Разница между ними проистекает из тех дней, когда печатали прямо на бумаге. Чтобы перейти к следующей строке, потребовалось два действия:

  1. сдвинуть «каретку» (большой цилиндр вверху) назад влево (именно здесь персонаж окажется).
  2. сдвигая бумагу на одну строчку вверх.(таким образом, спустившись на одну строку)

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

В молодой компьютерный век эти действия переводились 1 к 1 в \ r для возврата каретки и \ n для перемещения «бумаги».

В настоящее время основные операционные системы, по-видимому, расходятся во мнениях относительно того, необходимо ли это по-прежнему для компьютерных технологий, когда вернуться к предыдущему положению намного проще. Однако в современных языках программирования обычно предполагается, что \ n означает \ r \ n .

0
ответ дан 18 December 2019 в 07:08
поделиться

Вообще-то, возврат каретки должен переместить курсор в начало текущей строки. Затем, newline перемещает курсор точно вниз на единицу.

Сейчас компиляторы часто автоматически преобразуют одно или другое в \r\n в Windows или \n в Linux. Mac раньше использовал \r, но теперь они перешли на \n.

(правка: удалены ложные/непроверенные утверждения)

2
ответ дан 18 December 2019 в 07:08
поделиться
Другие вопросы по тегам:

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