LINUX.ORG.RU

[терминал] поведение \r и \n


0

1

Есть несколько вопросов на предмет уточнения стандартного поведения терминала при печати символов \n и \r:

  • должен ли \n после перехода на новую строку устанавливать крайнюю левую позицию колонки?
  • должен ли \n перед переходом на новую строку очищать текущую строку до правой границы терминала?
  • должен ли \n очищать новую строку после перехода на неё?
  • должен ли \r очищать строку?

\r - carriage return - возврат в первую позицию
\n - line feed - переход на следующую строку

очисткой эти функкции не занимаются. но я не могу представить, как можно перейти на _новую_ строку, и на ней уже что-то будет.

если передвигаться по уже написанному надо, то, вероятно, надо использовать другие команды. есть escape-коды для передвижения курсора по терминалу.
так же, есть ncurses/

aol ★★★★★ ()
Ответ на: комментарий от aol

Да, вопрос о печати поверх уже написанного — например, обновляется статус выполнения длительной операции: последовательно печатаются строка текста, затем \r и другая строка текста поверх старой. Насколько я понимаю, правильным будет сопровождать печать такой строки Esc-последовательностью <Esc>[K, т.е. терминалы не очищают строки самостоятельно.

oneliner ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.