Могу ли я печатать в консоли Windows данные, которые всегда отображаются?

#c #windows #console

#c #Windows #консоль

Вопрос:

У меня есть консольная программа, в которой я хотел бы отобразить некоторое состояние в первых нескольких строках, сохраняя при этом обычное поведение ведения журнала ввода / вывода с остальными строками.

Я попытался проиллюстрировать это здесь:

  -----------------------------   <- 
/ state1: abcdef              /    | // this always stays at the top of the console
/ state2: 012345              /    | // this is the behavior that deviates from normal
 -----------------------------   <-  
1st input  ^                       <-  
2nd input  |                         | // this scrolls upward as usual for the console
3rd input  |                         | // displaying past inputs/outputs
4th input  |                       <- 
5th in_                          <-- // normal console input   carot
 

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

Возможно ли заставить консоль или что-то вроде консоли окна выполнять такое поведение? Ничего страшного, если в результате прокрутка становится невозможной.

Комментарии:

1. Вы можете использовать функции консоли Windows для вывода только в определенных позициях. Или используйте библиотеку, такую как ncurses (или аналогичную, у которой есть порты для Windows), чтобы разделить консоль на меньшие оконные области.

2. На данный момент, почему бы вам просто не создать правильный графический интерфейс? Для этого они и предназначены.

3. @AsteroidsWithWings — Я пытаюсь быть ленивым от всего сердца, но это сложно

4. @AnneQuinn По иронии судьбы, ваши попытки быть ленивым существенно усложняют вашу жизнь 😉

5. Должен наступить момент, когда вы поймете, что усердно работать, чтобы быть ленивым, не имеет смысла. 🙂