Что означает символ cr carriage return

Возврат каретки

Возвра́т каре́тки — управляющий символ или механизм, используемый для возвращения позиции устройства к началу строки. Часто обозначается как CR (от англ. carriage return ).

Содержание

Происхождение термина

Каретка (от итал. carretta — тележка) — узел машины или механизма, несущий ряд деталей и передвигающийся по направляющим или вращающийся в подшипниках. В пишущих машинках имела вид рамки с валиком для бумаги. [1]

Пишущие машинки

Первоначально термин «возврат каретки» относился к механизму или рычагу на пишущей машинке. Он использовался после ввода строки и заставлял узел, держащий бумагу (каретку), вернуться вправо, так что машинка была готова печатать дальше на левой стороне бумаги (предполагая письмо слева направо). Рычаг обыкновенно продвигал бумагу на следующую строку. Электрический возврат каретки впервые появился на электрических пишущих машинках фирмы Smith Corona (англ.) в 1960 году. Клавиша, выполнявшая это действие, обыкновенно обозначалась «возврат каретки» (англ. carriage return ) или «возврат» ( return ). В других пишущих машинках, в том числе Selectric (англ.), печатающая головка двигалась при печатании, а бумага оставалась неподвижной. В них эта клавиша возвращала влево печатающую головку и иногда называлась «возврат держателя» (англ. carrier return ).

С целью улучшения для неанглоговорящих для обозначения этой клавиши был введён знак ↵ (U+21B5).

Компьютеры

Функции возврата каретки и перевода строки были разделены по двум причинам:

Уже в 1901 году код Бодо содержал отдельные знаки возврата каретки и новой строки.

Многие компьютерные программы используют для обозначения конца строки знак возврата каретки отдельно или вместе со знаком перевода строки, но для этой задачи используются и другие знаки; другие используют его только для разбиения абзаца. Некоторые стандарты, вводящие собственные обозначения для управления строками и абзацами (например, HTML), и многие языки программирования обрабатывают знаки возврата каретки и новой строки как пробел.

В ASCII и Юникоде возврат каретки определён как 13 (или шестнадцатеричное 0D); он также может обозначаться как Ctrl + M или ^M. В Си и многих других языках программирования \r обозначает возврат каретки. [2]

Источник

Почему Windows использование символов возврата каретки?

Я понимаю разницу между ними, так что нет необходимости вдаваться в это, но мне просто интересно, в чем причина того, почему Windows использует как CR, так и LF для обозначения разрыва строки. Похоже, что метод Linux (просто используя LF) имеет гораздо больше смысла, экономит место и легче разбирается.

6 ответов

Ситуация : когда я десериализую XML, содержащий возврат каретки, символы появляются как непечатаемый символ boxes, а не как возврат каретки. Предыстория : пользовательский ввод, собранный с помощью многострочного textbox, содержит возврат каретки в тексте. Я сохраняю эти текстовые данные в XML с.

Исторически сложилось так, что при использовании матричных принтеров телетайпы CR возвращали каретку в первую позицию строки, а LF-в следующую строку. Использование CR+LF в самих файлах позволило отправить файл непосредственно на принтер без какого-либо драйвера принтера.

Спасибо @zaph, указав, что это были телетайпы, а не матричные принтеры

@sshannin опубликовал URL из блога Раймонда Чена, но он больше не работает. Блог изменил свое внутреннее программное обеспечение, поэтому URLs изменился.

Этот протокол восходит ко временам телетайпных пишущих машинок. CR означает “carriage return” – управляющий символ CR вернул печатающую головку (“carriage”) в столбец 0 без продвижения бумаги. LF стендов для “linefeed” – управляющий символ LF продвинул бумагу на одну строку без перемещения печатающей головки. Поэтому, если вы хотите вернуть печатающую головку в нулевую колонку (готовую к печати следующей строки) и продвинуть бумагу (чтобы она печаталась на свежей бумаге), вам нужны как CR, так и LF.

Если вы перейдете к различным документам протокола Интернета, таким как RFC 0821 (SMTP), RFC 1939 (POP), RFC 2060 (IMAP), или RFC 2616 (HTTP), вы увидите, что все они указывают CR+LF в качестве последовательности завершения строки. Так реальный вопрос не в том, “Почему CP/M, MS-DOS и Win32 используют CR+LF как терминатор линии?” но скорее “Почему другие люди решили отличаться от этих стандартных документов и использовать какой-то другой терминатор строк?”

Unix принял обычный LF в качестве последовательности завершения строки. Если вы посмотрите на параметры stty, вы увидите, что параметр onlcr указывает, является ли LF следует изменить на CR+LF. Если вы неправильно настроите этот параметр, вы получите текст stairstep, где

там, где заканчивалась предыдущая строка. Таким образом, даже unix, оставленный в необработанном режиме, требует CR+LF для завершения строк. Неявное CR до LF-это изобретение unix, вероятно, в качестве экономии, поскольку оно экономит один байт на строку.

Родословная unix языка C перенесла это соглашение в стандарт языка C, который требует только “\n” (который кодирует LF) для завершения строк, что накладывает бремя на библиотеки времени выполнения для преобразования необработанных файловых данных в логические строки.

Язык C также ввел термин “newline” для выражения концепции “generic line terminator”. Мне сказали, что комитет ASCII изменил имя символа 0x0A на “newline” примерно в 1996 году, поэтому уровень путаницы был поднят еще выше.

Я изменил эту вторую ссылку на снимок в машине обратной связи, так как фактическая страница больше не доступна.

Надеюсь, это ответ на ваш вопрос.

Я ввожу данные в текстовое поле моей формы, которое содержит 2 символа новой строки, но не символ возврата каретки. (Я могу подтвердить это с помощью strlen в js или с помощью функции str.charCodeAt().) Теперь я отправляю эту форму в сценарий php, который каким-то образом получает возврат каретки.

У меня есть файл данных с фиксированной длиной записи. Нет возврата каретки или перевода строк, разделяющих записи. Как я могу вставить пару перевода строки с возвратом каретки на каждые X символов с помощью Notepad++(где X-длина записи)?

Он исходит от телетайпных машин (и пишущих машинок) с давних времен.

Раньше, когда вы заканчивали печатать строку, вам приходилось перемещать каретку пишущей машинки (которая удерживала бумагу и скользила влево, когда вы печатали) обратно в начало строки (CR). Затем вам нужно было продвинуть бумагу вниз по строке (LF), чтобы перейти к следующей строке.

Есть случаи, когда вы, возможно, не хотели вводить строку при возврате каретки, например, если бы вы собирались зачеркнуть символ тире (вы просто переписали бы его).

Но в основном все сводится к условностям. DOS использовал полное соглашение CR/LF, а UNIX немного сократил его. Теперь мы застряли!

Последовательность CR+LF широко использовалась во многих ранних компьютерных системах, которые использовали телетайпные машины, обычно ASR33, в качестве консольного устройства, поскольку эта последовательность требовалась для размещения этих принтеров в начале новой строки.

Очевидно, что причина, по которой эта практика продолжается в Windows по сей день, основана на некотором понятии постоянной обратной совместимости и, в конечном счете, просто на простой инерции.

Похожие вопросы:

Источник

Что такое возврат каретки?

Возврат каретки консоли!
Доброе время суток! Вопрос который мне не дает покоя уже 2й месяц! И так у нас есть управляющие.

Вывод в консоль и возврат каретки
Вывожу в цикле в консольное приложение по ходу обработки данных массива: cout 6

Именно так, кстати, ведут себя эти символы при «телетайпном» выводе функциями MS DOS.

блокнот умеет читать только \r\n
когда виндовс делали, многие системы юзали \n для перевода, а другие \r, поэтому, может и началось это всё с доса, виндовс включает оба вида

Решение

Если все время в конце строки будет возврат каретки,то будет каждый раз затираться надпись,т.е. она сдвинется к началу строки:
Hello,world!*
Курсор стоит на позиции *.
Когда будет возврат каретки, то курсор сдвинется на начало строки:
*Hello,world!
И тогда каждый раз одно и тоже слово будет затираться,а наглядно мы результат не увидим.
А если мы будем выводить с переводом строки, то позиция курсора останется на месте,только сменится номер строки:
(см рисунок вложенный)
Чтобы сделать перейти на новую строку и поместить курсор в начало,то нужно выводить полсе слова сначала возврат каретки,а потом перевод строки:
Тогда все будет приятно выглядеть.

Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них
Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из.

Что такое табуляция, возврат каретки и т.д.?
Меня интересует такие термины как «Табуляция», «Возврат каретки» и т.д. Пожалуйста с примерами.

Что еще за Возврат каретки?
Что делает символ \r? Что еще за каретка и куда она возвращается?

Источник

CR carriage return

Смотреть что такое «CR carriage return» в других словарях:

Carriage return — Carriage return, often shortened to return, refers to a control character or mechanism used to start a new line of text. Originally, the term carriage return referred to a mechanism or lever on a typewriter. It was used after typing a line of… … Wikipedia

Carriage Return — [Abk. CR, dt. »Wagenrücklauf«] das oder der, ürsprünglich von der Schreibmaschine übernommene Bezeichnung, bei der es einen Wagen gibt, der beim Erreichen des Zeilenendes durch Betätigen eines Hebels (bei elektrischen Ausführungen: einer Taste) … Universal-Lexikon

carriage return — UK / US noun [countable] Word forms carriage return : singular carriage return plural carriage returns computing a character that tells a computer to move the cursor to the beginning of the line … English dictionary

Carriage Return — Der Wagenrücklauf (englisch carriage return deutsch veraltet auch WR) ist auf Ausgabegeräten für Text die Anweisung, den Anfang der Zeile anzusteuern. Inhaltsverzeichnis 1 Schreibmaschinen 2 Fernschreiber 3 Computer … Deutsch Wikipedia

Carriage return — Der Wagenrücklauf (englisch carriage return deutsch veraltet auch WR) ist auf Ausgabegeräten für Text die Anweisung, den Anfang der Zeile anzusteuern. Inhaltsverzeichnis 1 Schreibmaschinen 2 Fernschreiber 3 Computer … Deutsch Wikipedia

Carriage Return Line Feed — En informatique, CRLF (ou CR+LF), est une séquence de deux octets qui indique une fin de la ligne (et surtout une nouvelle ligne) dans un texte. Le sigle CRLF provient de la juxtaposition du sigle de Carriage Return (retour chariot) et de Line… … Wikipédia en Français

carriage return — grįžimo į eilutės pradžią ženklas statusas T sritis informatika apibrėžtis Valdymo ženklas. Kodas: 13 (ASCII, dešimtainis), 0D (ASCII, šešioliktainis). Koduotėse žymimas CR (angl. carriage return). Kartu su ↑eilutės patraukimo ženklu tekstiniuose … Enciklopedinis kompiuterijos žodynas

carriage return — /ˈkærɪdʒ rəˌtɜn/ (say karij ruh.tern) noun 1. (on a typewriter) a key or lever which causes the next character typed to be positioned at the left margin and down a line. 2. (on a computer) a key or character which performs a similar function, as… … Australian-English dictionary

Carriage return — Retour chariot Le retour chariot désigne originellement le mécanisme physique permettant au chariot d une machine à écrire de revenir en butée à gauche (soit, du point de vue du rédacteur, de revenir au début de la ligne). Par extension, le terme … Wikipédia en Français

carriage return — atgalinė vežimėlio eiga statusas T sritis automatika atitikmenys: angl. carriage return vok. Wagenrücklauf, m rus. обратный ход каретки, m pranc. retour de chariot, m … Automatikos terminų žodynas

carriage return character — vežimėlio grįžties simbolis statusas T sritis automatika atitikmenys: angl. carriage return character vok. Wagenrücklaufzeichen, n rus. знак возврата каретки, m; символ возврата каретки, m pranc. caractère retour de chariot, m … Automatikos terminų žodynas

Источник

Русские Блоги

Интересная история «возврата каретки» и разницы между «возвратом каретки» и «переводом строки»

При вводе текста нажатие клавиши Enter приведет к началу новой строки. Это обычное использование неизбежно введет в заблуждение новичков в C / C ++: возврат каретки (CR, возврат каретки) ‘\ r’ и перевод строки (LF, перевод строки) ‘\ n’ понимание, здесь мы пока отложим этот вопрос в сторону, а поговорим о нем позже. Давайте сначала посмотрим на интересный исторический источник «возврата каретки».

Происхождение клавиши ввода восходит к эпохе механических английских пишущих машинок. На этой пишущей машинке есть часть, называемая «автомобиль персонажа», которая, вероятно, является нижней частью, которая продолжает бегать.

Что означает символ cr carriage return. Смотреть фото Что означает символ cr carriage return. Смотреть картинку Что означает символ cr carriage return. Картинка про Что означает символ cr carriage return. Фото Что означает символ cr carriage return

Что означает символ cr carriage return. Смотреть фото Что означает символ cr carriage return. Смотреть картинку Что означает символ cr carriage return. Картинка про Что означает символ cr carriage return. Фото Что означает символ cr carriage return

Что означает символ cr carriage return. Смотреть фото Что означает символ cr carriage return. Смотреть картинку Что означает символ cr carriage return. Картинка про Что означает символ cr carriage return. Фото Что означает символ cr carriage return

Итак, что же будет с Linux таким же образом? Пожалуйста, продолжай смотреть.

Что означает символ cr carriage return. Смотреть фото Что означает символ cr carriage return. Смотреть картинку Что означает символ cr carriage return. Картинка про Что означает символ cr carriage return. Фото Что означает символ cr carriage return

Что означает символ cr carriage return. Смотреть фото Что означает символ cr carriage return. Смотреть картинку Что означает символ cr carriage return. Картинка про Что означает символ cr carriage return. Фото Что означает символ cr carriage return

Через vim в Linux мы видим, что между a, ab и abc есть только один бит символа, который соответствует 0a, который является ‘\ n’ в коде ASCII, что означает, что в Linux используется только один символ новой строки. Представлять.

Тогда давайте вернемся к обсуждению ‘\ r’ и ‘\ n’ в C / C ++. В C / C ++ исходный стиль сохраняет это понимание символа новой строки. Символ возврата каретки ‘\ r’ означает только возврат в начало строки и не включает действие новой строки. Новая строка завершается символом ‘\ n ‘. Новички должны различать значение этих двух символов.

Теперь давайте воспользуемся простым кодом, чтобы проверить эффект ‘\ r’ ‘\ n’ ‘\ b’.

(1) Код C:

Что означает символ cr carriage return. Смотреть фото Что означает символ cr carriage return. Смотреть картинку Что означает символ cr carriage return. Картинка про Что означает символ cr carriage return. Фото Что означает символ cr carriage return

(2) Код C ++:

Что означает символ cr carriage return. Смотреть фото Что означает символ cr carriage return. Смотреть картинку Что означает символ cr carriage return. Картинка про Что означает символ cr carriage return. Фото Что означает символ cr carriage return

(3) Анализ:

Во-первых, давайте посмотрим на первую строку вывода «abc \ r \ ncba \ rrr \ bz \ n»:

Затем, чтобы более интуитивно доказать, что перемещается только курсор без удаления символов, давайте посмотрим на вторую строку кода. «abcd \ b \ b», после двух \ bs курсор перемещается под c (или квадратный курсор на c, или I-образный курсор перед c), чтобы курсор оставался для наблюдения. Мы добавлены getchar () и cin.get ().

Итак, результат после запуска программы будет:

В то же время вы можете видеть, что курсор остается в указанной выше позиции.Конечно, если вы введете символ в это время, c или даже d будут перезаписаны с позиции курсора.

Наконец, приложите для справки таблицу с экранированными символами.

Побег персонаж

значимость

Значение кода ASCII (десятичное)

Значение кода ASCII (шестнадцатеричное)

Колокол (BEL)

0x07

Backspace (BS), переместить текущую позицию в предыдущий столбец

0x08

Подача страницы (FF), переместить текущую позицию в начало следующей страницы

0x0C

Перевод строки (LF), переместить текущую позицию в начало следующей строки

0x0A

Возврат каретки (CR), переместить текущую позицию в начало этой строки

0x0D

Горизонтальная табуляция (HT) (перейти к следующей позиции TAB)

0x09

Вертикальная таблица (VT)

0x0B

Представляет символ обратной косой черты « \ »

0x5C

Представляет собой одинарную кавычку (апостроф).

0x27

Представляет символ двойной кавычки

0x22

\?Представляет собой вопросительный знак0630x3F

Нулевой символ (NULL)

0x00

Любой символ, представленный от 1 до 3 восьмеричных чисел.

Трехзначное восьмеричное

Любой символ, представленный от 1 до 2 шестнадцатеричных чисел

Двузначное шестнадцатеричное

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *