2012-12-05 4 views
1

Иногда, когда я устанавливаю программы, я вижу индикатор выполнения в окне консоли (или другое динамическое изменение текста). Он отображается и изменяется в одной строке строки. Когда я использую printf или другую функцию, я пишу следующий текст, но я не могу изменить в окне консоли уже существующий текст. Как я могу это сделать через C?Изменение существующего текста в окне консоли

ответ

3

Самый простой способ для такого эффекта - использовать символ возврата каретки \r, который позволяет вам писать поверх предыдущей строки.


Если вы хотите, чтобы иметь прямой доступ к буферу консоли (то есть писать в конкретной X/Y позицию вместо строки построчно), то вы, вероятно, ищете библиотеку помощника как pdcurses ,

2

Если вы хотите использовать printf и легко перейти к «change», используйте \r, который является возвратом каретки на linux. Это не будет работать на MAC, потому что это означает, что новая линия.

Если вы сделаете это, я бы посоветовал использовать ioctl, чтобы скрыть каретку, чтобы предотвратить мерцание и уродливое состояние.

Если вы хотите получить лучший способ манипулирования текстом на экране, вы можете посмотреть на ncurses

 Смежные вопросы

  • Нет связанных вопросов^_^