Какая разница между \n и\r\n?

Оба они означают "новая строка", но когда один используется над другим?

Ответ 1

\r\n - стиль Windows

\n - стиль POSIX

\r - это старый стиль pre-OS X Macs, Современный Mac с использованием стиля POSIX.


\r является возвратом carrige, а \n является линией, на старых компьютерах, на которых у него нет монитора, есть только принтер, чтобы получить результат программы для пользователя, если вы хотите получить печать от просмотра новой строки от слева, вы должны получить \n для Line Feed и \r, чтобы получить возврат каретки в самую левую позицию, это синтаксис старых компьютеров, сохраненный до этого времени на платформе Windows.

Ответ 2

\n - только новая строка, \r\n - это символ новой строки и возврат каретки (т.е. перемещение курсора влево).

Ответ 3

\n означает новую строку. Это означает, что курсор должен перейти к следующей строке.

\ r означает возврат каретки. Это означает, что курсор должен вернуться к началу строки.

Для программ Unix и Unix обычно требуется только новая строка (\n).

Для Windows и Windows обычно требуются оба.

Ответ 4

'\n' по умолчанию используется в Unix, '\ r\n' по умолчанию используется в Windows.

Ответ 5

Различные операционные системы обрабатывают новые строки по-другому. Вот краткий список наиболее распространенных: DOS и Windows

Они ожидают, что новой строкой будет комбинация двух символов, а именно: "\ r\n" (или 13, а затем 10).

Unix (и, следовательно, Linux тоже)

Unix использует одиночный '\n' для указания новой строки.

Mac

Маки используют один '\ r'.

поэтому это вызывает проблемы, когда u переносит приложение из окон в Mac, когда вы используете путь к папке и так далее.

Ответ 6

Вот как выглядит новая строка в операционных системах Windows (\ r\n) и linux (\n)

В Unix\r - возврат каретки (CR) и \n Линейная подача (LF), которая вместе является новой линией Windows идентификатор, и вы заменяете их идентификатором новой строки Unix.

В Windows\r также является CR, но \n представляет собой комбинацию CR и LF. Так эффективно вы пытаетесь заменить CR + CR + LF на CR + LF. Не делает много смысл, делает это.

От "perldoc perlop": Все системы используют виртуальный "\n" " для обозначения терминатора линии, называемой "новой линией". Нет такой вещи, как неизменный, физический символ новой строки. Это всего лишь иллюзия, что операционная система, драйверы устройств, библиотеки C и Perl, чтобы сохранить заговор. Не все системы читают "\r" " как ASCII CR и "\n" " как ASCII LF. Например, на Mac, они меняются на противоположные, а на системах без терминатора линии, печать "\n" " не может выдавать фактические данные. В общем, используйте "\n" ", когда вы означают "новую линию" для вашей системы, но используйте буквенный ASCII, когда вы нужен точный характер. Например, большинство сетевых протоколов ожидают и предпочитают CR + LF ( "\015\012" "или" "\cM\cJ" ") для терминаторов строк, и хотя они часто принимают только "\ 012", они редко переносят "\015" ". Если вы привыкли использовать" \n" для подключения к сети, вы может быть сожжено в какой-то день.

Ответ 7

Разница между различными операционными системами, в Windows, символ новой строки \r\n, тогда как в Linux это просто \n Mac OSX имеет только \r, это действительно просто вопрос того, что сделали разработчики ОС это

Ответ 8

В С# вы можете просто использовать Environment.NewLine