Возврат каретки что это 1с

Обновлено: 04.07.2024

важно ли иметь правильный порядок возврата каретки, а затем новую линию подачи? Для текстовых редакторов имеет ли значение, в каком порядке они появляются?

похоже, что Джефф уже написал очень хороший Блоге на эту тему.

традиционный порядок, когда используются оба управляющих символа, - это возврат каретки, а затем подача строки.

причина этого восходит к старому телетайпу ASR-33.

когда возврат каретки выдается ASR-33, печатающая головка, если она находится рядом с правым краем, занимает десятую долю секунды, чтобы вернуться к левому краю, плюс есть немного "отскока", когда левое поле поражено.

Если заказ был линией питания, то возвращение экипажа, первое печатный символ может появиться через десятую долю секунды после возврата каретки и, таким образом, может закончиться печатью (в виде мазка) на середине страницы. Но если подача строки происходит после возврата каретки, то время, затраченное на подачу строки, обеспечивает дополнительное время для завершения печати.

некоторые системы (я думаю, что старая ОС Xerox Sigma 7, например) делают подачу строки, а затем возврат каретки, но они вводят, например, нулевые символы в поток данных, чтобы позволить печатающей головке делать это вещь.

и, конечно, когда вы добираетесь до более быстрых устройств (например, некоторые ранние 30 CPS-телепринтеры), проблема ухудшается, и требуется более сложная стратегия.

(существует также Точка, что для ввода пользователем возврат каретки обеспечивается пользователем, нажимая клавишу возврата, в то время как подача линии должна быть предоставлена компьютером. По этой причине часто было "стилем" иметь нормальные линии печати начать с линией подачи и конец С возврат каретки. Таким образом, запрос на ввод пользователя состоял только из строки, а ввод пользователя заканчивался возвратом каретки. Эта схема работала хорошо, когда использовалась последовательно, но, конечно, это не всегда происходило.)

существует три распространенных формата linefeed:

  • \r\n для мира DOS\Windows
  • \r для мира Mac до OSX
  • \n для Unix и Unix-подобного мира

\n\r не является стандартом нигде, о котором я знаю, и, вероятно, приведет к тому, что ваш редактор подумает, что у него есть текстовый файл в формате Unix, а затем он отобразит странный символ \r в виде текста.

исторически \r переводится как возврат каретки (CR, ASCII код 13), который относится к старой школьной пишущей машинке, где вы будете толкать каретку назад влево, чтобы вернуть курсор обратно в начало строки. \n переводится в строку feed (LF, ASCII-код 10), которая перемещает символ вниз по странице на один символ. Хотя потенциально интересно, это, как правило, не имеет значения - просто используйте соответствующий формат linefeed для вашей текущей платформы.

как раз следование на возвращении экипажа, после этого линия бак исследования питания.

с Блокнотом он обнаруживает, когда конец строки, когда он находит символ CR+LF. Это общий формат, используемый CP / M, MS-DOS и Win32,источник

Unix обнаруживает конец строки, когда он находит LF.
Apple обнаруживает конец строки, когда он находит CR.

С точки зрения Uni-кода существует управляющий символ, называемый СЛЕДУЮЩАЯ СТРОКА (NEL) просто сделать ситуацию еще более сложной.

С языком программирования C, почему он выписывает возврат каретки + подача строки, Когда вы даете ему символ подачи строки? например

printf ("hello World\n").

язык программирования C и операционная система Unix переопределили символ подачи строки как символ новой строки с намерением, что библиотека stdio преобразует строки характер на все, что нужно, чтобы фактически перейти к началу следующей строки для этой платформы, например, возврат каретки + подача строки для Win32.

поэтому, когда вы пишете новый символ строки (это действительно символ LF) на C/C++ и на Windows или Linux, библиотека studio определит формат вывода, который нужно будет вывести для этого конца строки для этой платформы.

это очевидно при создании двоичного файла или текстового файла в C программа. Если указать, что вы пишете двоичный файл, библиотека studio оставит выходной формат без изменений для этой платформы. Поэтому при записи данных в файл и попадании в символ новой строки он не будет вставлять зависимые от платформы символы для новой строки.

хотя прихожу к выводу после всего этого.

даже если вы следуете правилам Win32 для возврата каретки + Line Feed, например, записывая следующее в файл как чистый двоичный файл файл.

MyText \n MyText \n MyText

и вы предполагаете, что он будет отображаться так в вашем текстовом редакторе.

большинство редакторов вместо этого будут отображать его так.

путаница в основном из-за стандарта C, который использует \N новый символ строки для двух разных значений. Во-первых, в качестве нового линейного индикатора для библиотеки STIO конвертировать в операционную систему новые формат строки (CR+LF на win32, LF на Linux и CR для Apple). Во-вторых, как только шестнадцатеричное значение линии подачи.

хорошо после 10 ревизий и опробования различных подходов на Win3.1,95,98, XP я пришел к выводу, что не смог найти приложение, которое использовало бы CR и LF независимо и может использовать их комбинацию в одном документе. Большинство текстовых редакторов будут показывать квадрат, когда он попадает в один CR или LF. Большинство текстовых редакторов smarter изменят формат файла в зависимости от того, они находят CR+LF/LF / CR для соответствующей платформы.

большинство, если не все редакторы заботятся только о рендеринге новой строки пользователю и будут переключаться между различными форматами файлов. Поэтому, если ваш писатель лексер и строка токенизатор в ближайшее время и беспокоиться о том, когда обнаружить новую строку. Его лучше всего для нижних уровней, чтобы обнаружить формат файла (CR + LF Win32, LF Linux, CR Apple), чтобы увеличить номер строки. Или используйте функцию ReadLine, которая будет учитывать это счет.

по меньшей мере, непонятно, почему IBM и Win32 приняли Carriage Return + Line Feed в качестве стандарта для указания текстовому редактору отображать новую строку. Когда на самом деле его избыточность. Я не смог найти ни одного приложения, которое отображало или использовало возврат каретки + линейный канал независимо от фактического имени, которое он предлагает.

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

(извините за удар, но это основной результат для результатов поиска по этому вопросу)

в Notepad++ это важно. Когда вы начинаете с перевода строки \n и затем возврат каретки \r ваш перевод строки на следующей строке. Поэтому порядок должен быть: CR LF

Читайте также: