Оба они означают "новая строка", но когда один используется над другим?
Какая разница между \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