Подтвердить что ты не робот

Есть ли символ линии вверх? (Напротив\n)

Я хотел бы перезаписать что-то на строке выше в последовательной консоли. Есть ли характер, который позволяет мне двигаться вверх?

Спасибо.

4b9b3361

Ответ 1

Большинство терминалов понимают управляющие коды ANSI. Соответствующие коды для этого варианта использования:

  • "\033[F" - переместить курсор в начало предыдущей строки
  • "\033[A" - переместить курсор вверх на одну строку

Пример (Python):

print("\033[FMy text overwriting the previous line.")

Ответ 2

Нет, не очень легко, для этого вам нужно будет использовать что-то вроде curses library, особенно если вы хотите иметь больше контроля над размещением курсора и делать больше программно.

Здесь ссылка на документы Python на Программирование с помощью Curses, и этот короткий учебник/пример могут также представлять интерес.

Я только что нашел эту заметку в docs в случае, если вы используете Windows:

Никто не сделал порт Windows для модуля curses. В Windows платформу, попробуйте модуль консоли, написанный Fredrik Lundh. Консоль модуль обеспечивает вывод курсора по адресу, а также полную поддержку мыши и клавиатуры, и доступен из http://effbot.org/zone/console-index.htm.

Я считаю, что для С++ существует библиотека NCurses, на связанной странице есть раздел перемещение курсора, если вы хотите сориентироваться с С++. Также есть Программирование NCurses HowTo.

Я давно использовал библиотеку curses с C.

Обновление

Я пропустил часть про запуск этого на терминале/последовательно, потому что для этой последовательности escape-последовательности ANSI, особенно для простой задачи, такой как ваша, будет проще, и я согласен с решением @SvenMarnach для этого.

Ответ 3

for i in range(10):  
    print("Loading" + "." * i) 

    doSomeTimeConsumingProcessing()

    sys.stdout.write("\033[F") # Cursor up one lin

Попробуйте это на Python и замените doSomeTimeConsumingProcessing() на любую необходимую процедуру и надейтесь, что это поможет

Ответ 4

Возможно, я ошибаюсь, но:

#include <windows.h>


void gotoxy ( int column, int line )
{
  COORD coord;
  coord.X = column;
  coord.Y = line;
  SetConsoleCursorPosition(
    GetStdHandle( STD_OUTPUT_HANDLE ),
    coord
    );
}

в стандартной консоли Windows.