Сбросить точку экрана в верхней части экрана в консоли Windows & Linux - PullRequest
2 голосов
/ 11 сентября 2008

У меня есть небольшая подпрограмма, которая работает под Linux и Windows, написанная на C, и отображает вывод на консоли. Я не делаю ссылки на любые формы проклятий или что-то в этом роде.

В настоящее время я очищаю экран, используя

#ifdef __WIN32
  system( "cls" );
#else
  system( "clear" );
#endif

Тогда у меня есть куча операторов printf для обновления статуса. Что бы я хотел, просто сбросьте указатель экрана на 0,0, чтобы я мог просто наложить мои printfs. Я бы предпочел избегать компиляции в любых других расширениях, тем более что я пишу для двух разных ОС.

Ответы [ 4 ]

1 голос
/ 11 сентября 2008

Для Unix-подобных платформ обычным способом сделать это является использование библиотеки curses .

0 голосов
/ 08 января 2009

Для окон - Вы можете использовать экранирующие символы ANSI.

http://www.lexipixel.com/news/star_dot_star/using_ansi_escape_sequences.htm

http://www.robvanderwoude.com/ansi.html

printf "\x[0;0H"

Раньше Ansi.sys нужно было загружать, прежде чем вы могли сделать это, но это стоит попробовать.

Инструкция по добавлению поддержки ANSI http://www.windowsnetworking.com/kbase/WindowsTips/WindowsXP/UserTips/CommandPrompt/CommandInterpreterAnsiSupport.html Обратите внимание: что Ansi.sys работает только под command.com. Вы не можете использовать его с cmd.exe

0 голосов
/ 19 сентября 2008

Да, для платформ Unix проклятия (или ncurses, в наши дни) - это путь. И есть версии, которые работают под Windows, так что вы можете сделать это одинаково в обеих системах.

0 голосов
/ 11 сентября 2008

Похоже, я нашел способ, специфичный для Windows SetConsoleCursorPosition

Ansi escape-последовательность \ 033 [0; 0H для Linux - просто распечатайте это на консоли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...