Что такое символ новой строки в C? Я знаю, что разные ОС имеют разные символы окончания строки, но они переводятся на символ новой строки C. Что это за символ?
Что такое символ новой строки на языке C:\r или\n?
Ответ 1
Это \n
. Когда вы читаете или записываете файлы текстового режима или в stdin/stdout и т.д., Вы должны использовать \n
, а C будет обрабатывать перевод для вас. Когда вы имеете дело с двоичными файлами, по определению вы сами по себе.
Ответ 2
Новая строка может рассматриваться как char
и она имеет значение '\n'
. С11 5.2.1
Эта новая строка C появляется в 3 местах: исходный код C, как один char
и как конец строки при вводе/выводе файла в текстовом режиме.
-
Многие компиляторы будут воспринимать исходный текст как ASCII. В этом случае коды 10, иногда 13, а иногда и спаренные 13,10 в качестве новой строки для исходного кода. Если исходный код находится в другом наборе символов, могут использоваться другие коды. Эта новая строка обычно отмечает конец строки исходного кода (на самом деле здесь все немного сложнее), директивы //comment и #.
-
В исходном коде 2 символа
\
иn
представляютchar
новой строки как\n
. Если используется ASCII, этотchar
будет иметь значение 10. -
В файловом вводе/выводе, в текстовом режиме, при чтении байтов входного файла (и стандартного ввода), в зависимости от среды, когда байты имеют значение (я) 10 (Unix), 13,10, (* 1) (Windows), 13 (Старый Mac??) и другие варианты переводятся в '\n'. После записи файла (или stdout) происходит обратный перевод.
Примечание. Файловый ввод/вывод в двоичном режиме не переводит.
'\r'
в исходном коде является возврат каретки char
.
(* 1) Одинокие 13 и/или 10 также могут переводиться в \n
.
Ответ 3
Если вы подразумеваете под символом новой строки символ новой строки, это \n и \r - символ несущей., но если вы подразумеваете под новой строкой строку, заканчивающуюся, то она зависит от операционной системы: DOS использует возврат каретки и линию ("\ r\n" ) в качестве окончания строки, который Unix использует только line feed ( "\n" )
Ответ 4
'\ r' = возврат каретки и '\n' = перевод строки.
На самом деле, при использовании их в разных операционных системах есть несколько вариантов поведения. В Unix это '\n', но в Windows это '\ r' '\n'.