gpt4 book ai didi

c++ - 如何在 ncurses 中模仿 TTY 行为?当我们到达底部时将屏幕上的所有线向上推?

转载 作者:行者123 更新时间:2023-11-30 04:10:00 25 4
gpt4 key购买 nike

我希望将连续输出打印到 ncurses 窗口中。当到达窗口底部时,我希望所有行都向上推 1 行(可能删除或隐藏第一行)。在底部显示最新的行。这是我通常期望从任何终端获得的行为。我需要 ncurses 的原因是我需要同时打印和获取输入,而对于普通终端,这是没有明确定义的。

我目前的解决方案是将所有行保存在一个队列中,然后简单地重新打印队列中的前 n 行。这是如何完成的,还是有办法在 API 中做同样的事情?

最佳答案

scroll() .您必须先设置 scrollok(win, TRUE) 。实际上,如果你只想像普通终端一样输出数据,你只需要设置 scrollok()自己。

#include <ncurses.h>

int main(void)
{
initscr();

scrollok(stdscr,TRUE);

for (int i = 0; i < 100; ++i)
{
printw("%d - lots and lots of lines flowing down the terminal\n", i);

refresh();
}

getch();

endwin();
return 0;
}

关于c++ - 如何在 ncurses 中模仿 TTY 行为?当我们到达底部时将屏幕上的所有线向上推?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20860270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com