Я не знаю, как это объяснить, но вот выстрел в него. Не стесняйтесь просить разъяснений, пожалуйста.
Предположим, что у меня есть консоль, которая отображает числа, которые изменяются с определенными событиями. Лучшим примером может служить "плоский" инструмент, показывающий высоту, направление, ветер и т.д. Так же:
Altitude: 9876ft Direction: NE
Wind: 5km, NE
...
У меня только консоль Windows и Linux, и я хочу, чтобы эти значения обновлялись на месте.
Это просто? C или С# и любые указатели определенно помогут.
Спасибо.
Библиотека curses - это обычный способ справиться с этим, и она достаточно переносима.
Я использовал бы Console.SetCursorPosition для этой цели.
вы всегда можете использовать что-то вроде
for(;;)
{
printf("value: %d", something);
update_value();
#ifdef WINDOWS
system("cls");
#else
system("clear");
#endif
}
но это самый грязный способ сделать это =)
Взгляните на этот поток. Я думаю, что предоставленные там решения будут соответствовать вашим потребностям.
Используйте что-то вроде последовательность кодов ANSI, чтобы стереть консоль и записать ее снова.
Если вы просто хотите обновить одну строку, в UNIX вы можете использовать символ управления \r
, чтобы перейти к началу строки, не переходя к следующей. Любое дальнейшее письмо переопределит написанное вами.