Member 12235586 Ответов: 2

что означает возврат каретки в c# "\r"


привет, друзья. я хочу знать, что означает "\r"("возврат каретки") и как это работает

2 Ответов

Рейтинг:
1

Sergey Alexandrovich Kryukov

По историческим причинам существуют два старых символа, используемых для обозначения границы между строками (или абзацами, в зависимости от интерпретации) для текстовых файлов. Один из них - "возврат каретки", "\r", а другой - "подача строки", "\n" (также: "новая строка"). Вы можете найти их в таблице ASCII: ASCII — Википедия, свободная энциклопедия[^].

It's funny, but these characters mimic behavior of mechanical typewriter. The letters hits the paper pressed against the rubberized bar; the bar with the paper is mounted in the "carriage" (it "carries" it) which moves horizontally to move from one character position to the next one. When the line is complete, it moves all the way to the left. It corresponds to "\r", "carriage return". Then the bar rotates by one line, and it corresponds to "\n". These two operations are kept independent, because some typing tricks requires moving just the carriage to type over already typed text, and independent rotation of the bar, to print something on an arbitrary line. So these operations sneaked in computer notation, even though no printer actually used them the way the mechanical typewriter did.

В Юникоде есть разные символы, используемые для схожих целей, но "\r" и "\n" используются чаще.

Хуже того, правила использования этих символов зависят от платформы. Пожалуйста смотрите: Новая строка — Википедия, свободная энциклопедия[^].

В программах .NET в большинстве случаев (на самом деле это также зависит от цели) вместо этого необходимо использовать платформенно-зависимый объект, System.Environment.NewLine:
Класс Окружающей Среды (Система)[^].

Тем не менее, если вы копируете один текстовый файл с одной платформы на другую, на целевой платформе, вы можете получить "неродное" использование символов новой строки. В наши дни это не такая уж большая проблема. Роль текстовых файлов сводится к носителям для формата файла, где это не имеет значения, например, HTML, ePUB, Open XML и так далее. На всех платформах современные программы обработки текста, включая текстовые редакторы, предназначены для обнаружения несоответствия и его исправления, "нормализации".

—СА


CPallini

5.

Sergey Alexandrovich Kryukov

Спасибо, Карло.
Кстати, я забыл добавить абзац (только что сделал это), где я объяснил происхождение "\n" и "\r" от конструкции механической пишущей машинки. Это довольно забавно, взгляните. (У меня было сомнительное "удовольствие" печатать немного, используя некоторые из таких машин, что на самом деле не очень весело. :-)
—СА

Рейтинг:
1

koolprasadd

В основном возврат каретки \r перемещает курсор в начало текущей строки. Новая строка \n вызывает переход к следующей строке и, возможно, начало следующей строки; это зависящая от платформы часть, которую Алексей отмечает выше (в системе *nix \n дает вам как возврат каретки, так и новую строку, в windows это не так)