Обновление значений в консоли

2

Я не знаю, как это объяснить, но вот выстрел в него. Не стесняйтесь просить разъяснений, пожалуйста.

Предположим, что у меня есть консоль, которая отображает числа, которые изменяются с определенными событиями. Лучшим примером может служить "плоский" инструмент, показывающий высоту, направление, ветер и т.д. Так же:

Altitude: 9876ft      Direction: NE
Wind:     5km, NE
...

У меня только консоль Windows и Linux, и я хочу, чтобы эти значения обновлялись на месте.

Это просто? C или С# и любые указатели определенно помогут.

Спасибо.

Теги:
console

5 ответов

4
Лучший ответ

Библиотека curses - это обычный способ справиться с этим, и она достаточно переносима.

2

Я использовал бы Console.SetCursorPosition для этой цели.

  • 0
    В этом вопросе упоминается консоль Linux, для которой это не слишком полезно.
  • 0
    Этот метод существует в Mono Class Library, поэтому я предполагаю, что он будет работать и в Linux.
1

вы всегда можете использовать что-то вроде

for(;;)
{
  printf("value: %d", something);
  update_value();
#ifdef WINDOWS
  system("cls");
#else
  system("clear");
#endif
}

но это самый грязный способ сделать это =)

0

Взгляните на этот поток. Я думаю, что предоставленные там решения будут соответствовать вашим потребностям.

0

Используйте что-то вроде последовательность кодов ANSI, чтобы стереть консоль и записать ее снова.

Если вы просто хотите обновить одну строку, в UNIX вы можете использовать символ управления \r, чтобы перейти к началу строки, не переходя к следующей. Любое дальнейшее письмо переопределит написанное вами.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню