Что такое символ новой строки на языке C:\r или\n?

Что такое символ новой строки в C? Я знаю, что разные ОС имеют разные символы окончания строки, но они переводятся на символ новой строки C. Что это за символ?

Ответ 1

Это \n. Когда вы читаете или записываете файлы текстового режима или в stdin/stdout и т.д., Вы должны использовать \n, а C будет обрабатывать перевод для вас. Когда вы имеете дело с двоичными файлами, по определению вы сами по себе.

Ответ 2

Новая строка может рассматриваться как char и она имеет значение '\n'. С11 5.2.1

Эта новая строка C появляется в 3 местах: исходный код C, как один char и как конец строки при вводе/выводе файла в текстовом режиме.

  1. Многие компиляторы будут воспринимать исходный текст как ASCII. В этом случае коды 10, иногда 13, а иногда и спаренные 13,10 в качестве новой строки для исходного кода. Если исходный код находится в другом наборе символов, могут использоваться другие коды. Эта новая строка обычно отмечает конец строки исходного кода (на самом деле здесь все немного сложнее), директивы //comment и #.

  2. В исходном коде 2 символа \ и n представляют char новой строки как \n. Если используется ASCII, этот char будет иметь значение 10.

  3. В файловом вводе/выводе, в текстовом режиме, при чтении байтов входного файла (и стандартного ввода), в зависимости от среды, когда байты имеют значение (я) 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'.