Возврат каретки Windows \r\n
, в то время как это \n
в Unix, \r\n
обрабатывается как два символа?
Возвращается ли каретка Windows\r\n из двух символов или одного символа?
Ответ 1
Это два символа:
-
\r
- возврат каретки; -
\n
- строка.
Два символа вместе представляют новую строку в Windows. Если в Linux, \n
представляет новую строку. Он перемещает курсор в начало новой строки в Linux. В Windows курсор останется на том же столбце в консоли, но на следующей строке.
\r
в Linux имеет тот же эффект, что и в Windows: перемещает курсор в начало строки. Можно напечатать различную информацию в той же строке, где \r
используется вместо \n
.
Ответ 2
На самом деле \r is 0x0D (^M) and \n is 0x0A (^J)
, но..... на окнах:
\n will write 0x0D 0x0A
в unix:
\r will write 0x0D
\n will write 0x0A
Ответ 3
Зависит от настройки. \r\n
имеет ширину в два байта (в ASCII, UTF-8 и т.д.), но библиотеки ввода-вывода, такие как библиотека C stdio
, и другие, при работе в текстовом режиме, могут переводить между \n
и \r\n
квази -transparently.
I.e., на платформе Windows, программа C, читающая текстовый поток txt_in
с
while ((c = getc(txt_in)) != EOF)
printf("%02x\n", c);
не сообщит код ASCII для \r
. И наоборот, putc('\n', txt_out)
фактически напишет \r\n
в поток текстового режима txt_out
.
Ответ 4
Windows не различает \r\n
и любые другие два символа. Тем не менее, есть одна ситуация, когда она рассматривается как один символ: если вы используете время выполнения C и открываете файл в виде текста, \r\n
в файле будет считаться как \n
, а \n
будет записано в файл как \r\n
.
Ответ 5
Да, это два символа: возврат каретки '\ r', за которым следует linefeed '\n'.
Ответ 6
Я провел несколько тестов (ничего не придумал) с Notepad ++ и Sublime Text 2 в Windows, и получается, что \r
и \n
действительно являются 2 разными символами, но...
Различные текстовые редакторы могут вставить или они могут не вставлять \r
, когда нажата клавиша Return.
Попробуйте следующее в текстовом редакторе:
1
2
3
4
5
Затем нажмите Ctrl + F, включите регулярные выражения и выполните поиск \r
. В зависимости от вашего текстового редактора и его настроек вы можете "ударить" или "не ударить" персонажа в конце каждой строки. Если вышеуказанный текст скопирован в другом редакторе, поведение может также отличаться...
Некоторые текстовые редакторы допускают настройки в своих настройках, где вы можете указать, хотите ли вы вставить \r\n
или unix-style \n
при нажатии Return. Кроме того, они могут позволить вам выбрать обеспечить соблюдение согласованного стиля путем удаления или вставки символа \r
перед сохранением файла.