8-900-374-94-44
[email protected]
Slide Image
Меню

Си перевод строки: c — Переход на новую строчку в файле (СИ)

— элемент переноса строки — HTML

HTML-элемент <br> устанавливает перевод строки в тексте (возврат каретки). Он полезен при написании поэмы или адреса, где важно деление на строки.

Как мы видим из примера выше, элемент <br> поставлен в том месте, где мы хотим перенести строку. Текст после <br> начинается со следующей строки текстового блока.

Примечание: Не используйте <br> для увеличения разрыва между строками в тексте; используйте CSS-свойство margin элемента <p>.

Этот элемент включает в себя глобальные атрибуты (en-US).

Устаревшие атрибуты

clear

Определяет, где начинается следующая строка после перевода строки.

Элемент <br> имеет единственную цель – создать разрыв линии в блоке текста. Таким образом, он не имеет размеров или визуального стиля как такового. Есть всего несколько свойств, которые вы можете стилизовать.

Вы можете установить значение margin на <br> чтобы увеличить расстояние между линиями в блоке, но это плохая практика – лучше использовать свойство line-height для этой цели.

Простой br

В следующем примере мы используем элемент <br> для разрыва линий в почтовом адресе:

Mozilla<br>
331 E. Evelyn Avenue<br>
Mountain View, CA<br>
94041<br>
USA<br>

Результат будет выглядеть так:

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

<br>. Это может привести к путанице и разочарованию для человека, использующего программу чтения с экрана.

  • Категории контента Основной поток, текстовый контент.
  • Разрешённое содержимое Отсутствует, это пустой элемент.
  • Пропуск теговДолжен иметь открывающий тег, но не закрывающий тег. В XHTML документах элемент пишется как <br />.
  • Допустимые родительские элементы Любой элемент, который поддерживает текстовый контент.
  • Интерфейс DOM HTMLBRElement
Specification
HTML Standard
# the-br-element

BCD tables only load in the browser

with JavaScript enabled. Enable JavaScript to view data.
  • Элемент <address>
  • Элемент <p>

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.

Want to get more involved?

Learn how to contribute.

This page was last modified on by MDN contributors.

Перевод строки | это… Что такое Перевод строки?

Перевод строки, или разрыв строки — продолжение печати текста с новой строки, то есть с левого края на строку ниже, или уже на следующей странице.

Разделителем строк, обозначающим место перевода строки, в текстовых данных служит один или пара управляющих символов, а в размеченном тексте также — определённый тег (в HTML — тег <br/>, от англ. break — «разрыв»). Разделитель строк также называют просто переводом строки, когда нет надобности их различать.

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

Содержание

  • 1 Терминология
  • 2 В ASCII
  • 3 В Юникоде
  • 4 Трудности
    • 4.1 Разница представлений
    • 4.2 Последняя строка
  • 5 История
    • 5. 1 CR+LF
    • 5.2 Конец строки
    • 5.3 Абзац
  • 6 См. также
  • 7 Примечания
  • 8 Ссылки

Терминология

Перевод строки называют переносом[источник не указан 915 дней], когда нет опасности спутать его со внутрисловным переносом. Перевод строки сокращают как NEL (от англ. next line — «со следующей строки, переход на следующую строку», или newline — «с новой строки, переход на новую строку»).

Возврат каретки (англ. carriage return, CR) — управляющий символ ASCII (0x0D, 13 в десятичной системе счисления, ‘\r’), при выводе которого курсор перемещается к левому краю поля, не переходя на другую строку. Этот управляющий символ вводится клавишей «Enter». Будучи записан в файле, в отдельности рассматривается как перевод строки только в системах Macintosh.

Подача строки (от англ. line feed, LF — «подача [бумаги] на строку») — управляющий символ ASCII (0x0A, 10 в десятичной системе счисления, ‘\n’), при выводе которого курсор перемещается на следующую строку. В случае принтера это означает сдвиг бумаги вверх, в случае дисплея — сдвиг курсора вниз, если ещё осталось место, и прокрутку текста вверх, если курсор находился на нижней строке. Возвращается ли при этом курсор к левому краю или нет, зависит от реализации.

Таким образом, вывод последовательности CR+LF в семантике терминала гарантирует действие «создание новой строки».

Терминалы (и их эмуляторы) могут также проводить различные преобразования символов (например, LF → CR+LF, CR → CR+LF) при вводе и выводе текста.

Жёсткий возврат, иногда аппаратный возврат — разделитель строк, поставленный пользователем.

Мягкий возврат — перевод строки, выполненный текстовым процессором в том месте текста, которое им выбрано. Мягкий возврат является разделителем строк для текстового процессора и не является таковым для пользователя.

В ASCII

Системы, основанные на ASCII или совместимом наборе символов, используют или LF (перевод строки, 0x0A), или CR (возврат каретки, 0x0D) по отдельности, или последовательность CR+LF; см. ниже историческую причину для соглашения CR+LF. Эти названия основаны на командах принтера: перевод строки означает, что одна строка на бумаге должна быть перенесена при печати, а возврат каретки означает, что каретка печатающего устройства должна вернуться к началу текущей строки.

  • LF (ASCII 0x0A) используется в Multics, UNIX, UNIX-подобных операционных системах (GNU/Linux, AIX, Xenix, Mac OS X, FreeBSD и др.), BeOS, Amiga UNIX, RISC OS и других;
  • CR (ASCII 0x0D) используется в 8-битовых машинах Commodore, машинах TRS-80, Apple II, системах Mac OS до версии 9 и OS-9;
  • CR+LF (ASCII 0x0D 0x0A) используется в DEC RT-11 и большинстве других ранних не-UNIX- и не-IBM-систем, а также в CP/M, MP/M (англ.), MS-DOS, OS/2, Microsoft Windows, Symbian OS, протоколах Интернет.

В Юникоде

По стандарту, любое совместимое с Юникодом приложение должно воспринимать как перевод строки каждый из нижеследующих символов:

  • LF (U+000A): англ.  line feed — подача строки;
  • CR (U+000D): англ. carriage return — возврат каретки;
  • NEL (U+0085): англ. next line — переход на следующую строку;
  • LS (U+2028): англ. line separator — разделитель строк;
  • PS (U+2029): англ. paragraph separator — разделитель абзацев.

Последовательность CR+LF (U+000D U+000A) надлежит воспринимать как один перевод строки, а не два[1].

Трудности

Нет общепринятых сокращений русских терминов. ВК (Возврат Каретки) совпадает по написанию с сокращением от англ. BreaK («разрыв [строки]», — то же, что перевод строки), а ПС не различает Подачу Строки и Перевод Строки.

Разница представлений

Отсутствие единого общепринятого представления перевода строки в разных операционных системах осложняет обмен текстовыми данными между ними. Юникод старается примирить эту разницу, уравнивая CR, LF и CR+LF, однако вступает в противоречие с наследуемым им ASCII при трактовке последовательности LF+CR, не предварённой CR: согласно ASCII это один перевод строки, а согласно Юникоду — два. Вероятно, Юникод сделал ставку на не существовавшие в ASCII разделители строк и абзацев, но они не прижились[источник не указан 1309 дней].

Перевод строки при вводе с клавиатуры представлен единообразно во всех системах — символом CR, и в системах с другим представлением перевода строки текстовые данные приходится перекодировать.

Последняя строка

Даже в современных изданиях ОС UNIX и Linux отсутствие перевода строки в конце системных конфигурационных файлов приводит к тому, что последняя строка не учитывается[2], а вроде правильно составленный файл не работает, представляясь головоломкой для пользователя, не предупреждённого об этой самобытной особенности. См. раздел Конец строки.

История

На перфокартных системах хранения данных одна строка записывалась на одну перфокарту, поэтому строка была заданной длины, по количеству колонок (обычно 80). Строки короче добивались пробелами, а строки длиннее обрезались. Разделителя строк не было, а неявный перевод строки предполагался через каждые 80 символов. Некоторые ранние мейнфреймовые операционные системы переняли это для хранения текста в файлах, где уже не было естественного ограничения на длину строки.

CR+LF

На механических пишущих машинках был рычаг, который возвращал каретку к левому краю страницы и прокручивал вал, подвигая бумагу вверх на строку. На телетайпах и более поздних алфавитно-цифровых печатающих устройствах (АЦПУ) вместо каретки была головка, в лазерных принтерах она перестала быть материальной, но в термине возврат каретки всё это продолжали называть кареткой, чтобы его не менять. На телетайпах возврат каретки и подачу строки разделили, откуда традиция представления перевода строки как CR+LF перешла и к текстовым файлам.

Конец строки

Телетайпы сначала печатали на рулонной бумаге, и сообщения начинали и заканчивали переводом строки, чтобы каждое начиналось с новой строки наверняка. Отсюда пошёл обычай включать разделитель сообщений в состав самого сообщения.

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

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

Лишняя строка в конце файла обычно не представляет хлопот, поэтому перевод строки до сих пор называют концом строки, а разделитель строк — символом конца строки (EOL, англ. end of line).

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

Абзац

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

Позже в редакторах появился автоматический перенос, выполняемый на лету при отрисовке текста каждый раз заново. Для отличения от ручного его назвали мягким возвратом, а ручной — жёстким (перенос называли и просто возвратом, см. раздел Разница представлений). Разделитель строк при этом переносил как раньше, но приобрёл смысл ещё и разделителя абзацев — для тех строк, в которых срабатывал автоперенос и которые становились при этом абзацами. Включатель такого режима назвали переносом по словам (англ. word wrap). При автопереносе ручной перенос разрывал абзац, межабзацный интервал делался как раньше (в новых терминах — перемежением пустым абзацем), но основное качество абзаца — независимость от разбиения на строки — было достигнуто.

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

Чтобы не заботиться о совместимости с уже существующим в ASCII разделителем строк/абзацев, разработчики не стали использовать символы ASCII для разделителя строк и разделителя абзацев. В HTML использовали теги <br /> и <p>, в Юникоде — символы U+2028 и U+2029, соответственно. В Википедии абзацы можно разделять пустыми строками, отображаемыми при этом полноценным интервалом.

См. также

  • Перенос
  • Отступ
  • Текстовый процессор
  • Пустая строка

Примечания

  1. Unicode Standard Annex #14: Unicode Line Breaking Algorithm  (англ.)
  2. Поисковый запрос missing final newline

Ссылки

  • Параграф 8 (Newline Guidelines) главы 5 (Implementation Guidelines) стандарта Юникода версии 5.2.0  (англ.)
  • The [NEL] Newline Character  (англ.) — заметка W3C
  • Xavier Noria. Understanding Newlines  (англ.)
  • The End-of-Line Story  (англ.)
  • The End of Line Puzzle  (англ.)
  • Tofrodos  (англ.) — свободная программа для преобразования переводов строк в файлах в ASCII-кодировке между форматами MS-DOS/Windows и UNIX
  • ToFroWin  (англ. ) — расширение Проводника Windows для преобразования переводов строк между форматами MS-DOS/Windows и UNIX; представляет собой GUI-версию для Windows программы Tofrodos

цв

цв
Единая спецификация UNIX®, версия 2
Copyright © 1997 The Open Group

ИМЯ
col — фильтровать обратные переводы строк ( LEGACY )
ОБЗОР
столбец  [  -bfpx  ] 

 
ОПИСАНИЕ
цв. полезность читает со стандартного ввода и записывает на стандартный вывод. Он выполняет наложения строк, подразумеваемые обратными переводами строки, а также прямым и обратным переводом строки. Пока не используется, все пустые символы на входе будет преобразовано в символы табуляции где это возможно.

ASCII управляющие символы ТАК и СИ предполагаются цв. чтобы начать и закончить текст в альтернативном наборе символов. Набор символов, к которому принадлежит каждый введенный символ, запоминается, и на выходе СИ и ТАК символы генерируются соответствующим образом, чтобы обеспечить что каждый символ записан в правильном наборе символов.

При вводе принимаются только управляющие символы: космос, назад, вкладка, возврат каретки и символы новой строки, СИ, ТАК, ВТ, обратный перевод строки, прямой перевод строки и обратный полуперевод строки. ВТ символ является альтернативной формой полного обратного перевода строки, включены для совместимость с некоторыми более ранними программами этого типа. Единственными другими символами, которые будут скопированы в вывод, являются те, которые можно распечатать.

Коды ASCII для функций управления и линейного движения упомянутые выше последовательности приведены в таблице ниже. ESC означает escape-символ ASCII с восьмеричным кодом 033; ESC -x означает последовательность из двух символов, ESC, за которым следует символ х .

 
обратный перевод строки ESC -7
обратный полустрочный перевод ESC -8
перевод на половину строки вперед ESC -9
вертикальная вкладка ( VT ) 013
начало текста ( SO ) 016
конец текста ( SI ) 017
ОПЦИИ
цв. Утилита поддерживает спецификацию XBD , Руководство по синтаксису утилиты   . Поддерживаются следующие параметры:
Предположим, что используемое устройство вывода не поддерживает возврат. В этом случае, если два или более символов должны появиться в одном и том же месте, будет выведено только последнее прочитанное.
Подавить обычную обработку движений по полулинии. Хотя цв. принимает полупрямые движения на входе, обычно не испускать их на выходе. Вместо этого текст, который должен был появиться между строками, перемещается на следующий нижний уровень. сплошная граница. Подавляя эту обработку, выход из
столбец
может содержать полуперевод строки вперед, но по-прежнему никогда не будет содержать ни одного вида движения в обратном направлении.
Принудительно пропускать управляющие последовательности без изменений. Обычно, цв. удалит любые escape-последовательности, найденные во входных данных, которые не указано выше.
Предотвратить цв. от преобразования пустые символы к символы табуляции на выходе везде, где это возможно. Позиции табуляции считаются в каждой позиции столбца п такой, что п по модулю 8 равно 1.
ОПЕРАНДЫ
Никто.
Стандартный номер
Стандартный ввод — это текстовый файл, который необходимо перевести.
 ВХОДНЫЕ ФАЙЛЫ
Никто.
ПЕРЕМЕННЫЕ ОКРУЖАЮЩЕЙ СРЕДЫ
Следующие переменные среды могут повлиять на выполнение столбец :
LANG
Укажите значение по умолчанию для переменных интернационализации которые не установлены или равны нулю. Если ЯЗЫК не установлен или равен нулю, соответствующее значение из будет использоваться языковой стандарт по умолчанию, зависящий от реализации. Если какая-либо из переменных интернационализации содержит недопустимое значение, утилита будет вести себя так, как если бы ни одна из переменных не была определена.
ЛК_ВСЕ
Если задано непустое строковое значение, переопределить значения всех других переменных интернационализации.
LC_CTYPE
Обозначить локаль для интерпретации последовательностей байтов текстовых данных как символы (например, однобайтовые, а не многобайтовые символы в аргументах и ​​входных файлах).
ЛК_СООБЩЕНИЯ
Определите локаль, которая должна использоваться для воздействия формат и содержание диагностики сообщения пишутся в стандартную ошибку.
NLSPATH
Определение местоположения каталогов сообщений для обработки ЛК_СООБЩЕНИЯ .
АСИНХРОННЫЕ СОБЫТИЯ
По умолчанию.
СТАНДАРТНЫЙ
Стандартный вывод представляет собой текстовый файл, переведенный с стандартный ввод.
СТДЕРР
Используется только для диагностических сообщений.
 ВЫХОДНЫЕ ФАЙЛЫ
Никто.
РАСШИРЕННОЕ ОПИСАНИЕ
Никто.
СТАТУС ВЫХОДА
Возвращаются следующие значения выхода:
0
Успешное завершение.
>0
Произошла ошибка.
ПОСЛЕДСТВИЯ ОШИБОК
По умолчанию.
 ПРИМЕНЕНИЕ ПРИМЕНЕНИЯ
Использование опция может увеличить или уменьшить время печати, в зависимости от типа принтера.

Локальные вертикальные движения, которые могут привести к задним ходам над первым строки документа игнорируются. В результате первая строка не должна иметь надстрочных индексов.

Использование или варианты не рекомендуется, если пользователь знает о последствиях передачи необычных escape-последовательностей к терминалу.

ПРИМЕРЫ
Никто.
БУДУЩИЕ НАПРАВЛЕНИЯ
Никто.
СМ. ТАКЖЕ
Никто.

UNIX ® является зарегистрированной торговой маркой The Open Group.
Copyright © 1997 The Open Group
[ Основной индекс | XSH | XCU | XBD | ИСКУРСЫ | XNS]

col — удалить обратный перевод строки


col [ -bfx ] [ файл …]


Команда col обрабатывает управляющие символы для вертикального перевода строки, обрабатывая их разумным образом. col записывает обработанный текст в стандартный вывод. Он предназначен для использования в качестве фильтра между такими программами, как nroff и устройство вывода, которое не поддерживает реверс перевод строки.

col также выполняет другое форматирование. По возможности пустые символы (пробелы) преобразуются в символы табуляции; Предполагается, что позиции табуляции располагаются через каждые восемь символов.

col также удаляет все escape-последовательности, кроме тех, которые показано в таблице 1, Управляющие символы, разрешенные цв. . ESC — управляющий символ ASCII, восьмеричный код 033.

Символ Управляющий символ ASCII (восьмеричный)

Backspace 010
Возврат каретки 015
Новая линия 012
Вертикальная вкладка 013
ТАК 016
СИ 017
космос 040
вкладка 011
обратный перевод строки ЭСК-7
обратный полустрочный перевод ЭСК-8
полустрочный перевод вперед ЭСК-9

Таблица 1: Управляющие символы, разрешенные столбцом

Управляющие символы ASCII SO и SI обозначают начало и конец текста в альтернативном наборе символов. Набор каждого введенного символа запоминается. столбец генерирует символы SO и SI по мере необходимости для вывода каждого символа в правильный набор символов.

Опции

-b  

игнорирует возврат ( CTRL-H) символов. Если два символа должен появиться в одном и том же месте, первый символ игнорируется и второй выводится.

-f  

допускает полупрямые движения вперед. Обычно они меняются на движения вперед по полной линии.

 

предотвращает преобразование пробелов в символы табуляции.


Возможные значения состояния выхода:

Успешное завершение.

Отказ из-за любого из следующего:

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

Все UNIX-системы. Виндовс 8.1. Windows Server 2012 R2. Windows 10. Windows Server 2016. Windows Server 2019. Windows 11. Windows Server 2022.


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

Поскольку -f позволяет использовать управляющие последовательности, это может привести к неожиданным результатам на терминалах.


Набор инструментов PTC MKS для опытных пользователей
Набор инструментов PTC MKS для системных администраторов
Набор инструментов PTC MKS для разработчиков
Набор инструментов PTC MKS для взаимодействия
Набор инструментов PTC MKS для профессиональных разработчиков
Набор инструментов PTC MKS для профессиональных разработчиков, 64-разрядная версия
Набор инструментов PTC MKS для корпоративных разработчиков
Набор инструментов PTC MKS для корпоративных разработчиков, 64-разрядная версия


Комплект документации PTC MKS 10.

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

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