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