Сбросить точку экрана в верхнюю часть экрана в консоли Windows и Linux

StackOverflow https://stackoverflow.com/questions/56324

  •  09-06-2019
  •  | 
  •  

Вопрос

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

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

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

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

Это было полезно?

Решение 2

Похоже, я нашел способ сделать это для Windows. SetConsoleCursorPosition

Escape-последовательность Ansi \033[0;0H для Linux — просто выведите ее на консоль.

Другие советы

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

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

Для окон — вы можете использовать escape-символы 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, но попытаться стоит.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top