使用pdCurses向后滚动历史记录

使用pdCurses向后滚动历史记录,c,scroll,curses,C,Scroll,Curses,你好,祝你今天愉快 因此,我编写了这个简单的应用程序,当你按下向下翻页或向上翻页按钮时,它会向下或向上滚动 #include <curses.h> #include <stdio.h> #include <Windows.h> int main(void) { int ch; initscr(); cbreak(); keypad(stdscr,TRUE); idlok(stdscr,TRUE); scrol

你好,祝你今天愉快

因此,我编写了这个简单的应用程序,当你按下
向下翻页
向上翻页
按钮时,它会向下或向上滚动

#include <curses.h>
#include <stdio.h>
#include <Windows.h>

int main(void)
{
    int ch;

    initscr();
    cbreak();
    keypad(stdscr,TRUE);
    idlok(stdscr,TRUE);
    scrollok(stdscr,TRUE);

    printw("Welcome!");
    refresh();


    ch = getch();
    while(ch != 'q'){
        if(ch == KEY_PPAGE){
            scrl(-1);
            refresh();
        }
        else
        {
            scrl(1);
            refresh();
        }
        ch = getch();
    }

    endwin();
    return 0;

}
#包括
#包括
#包括
内部主(空)
{
int-ch;
initscr();
cbreak();
键盘(stdscr,真);
idlok(stdscr,TRUE);
scrollok(stdscr,TRUE);
printw(“欢迎!”);
刷新();
ch=getch();
而(ch!=“q”){
如果(ch==键号){
scrl(-1);
刷新();
}
其他的
{
scrl(1);
刷新();
}
ch=getch();
}
endwin();
返回0;
}
问题是,如果世界“欢迎”离开了窗口,那么你就不能用相反的按钮把它带回来。我认为这样的问题可以通过增加窗口缓冲区来解决。但我不知道这样的事情会怎么做,如果它的好做


有什么想法/提示可以帮助我解决这个问题吗

我在python中使用诅咒,解决这个问题的方法是在窗口中附加一个类似列表的数据结构,该结构保存所有要记住的行,以及一个表示第一个可见行的索引。从那里,您可以确定哪些行应该是可见的,并根据需要重新计算


可以在使用UniCourses的python中找到这样一个实现。它不是用C语言编写的,但我希望它能有所帮助。

我在python中使用诅咒,解决这个问题的方法是在窗口中附加一个类似列表的数据结构,该结构保存所有要记住的行,以及一个表示第一个可见行的索引。从那里,您可以确定哪些行应该是可见的,并根据需要重新计算

可以在使用UniCourses的python中找到这样一个实现。它不是用C写的,但我希望它能有所帮助