Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scroll PDCurses滚动问题_Scroll_Buffer_Ncurses_Curses_Pdcurses - Fatal编程技术网

Scroll PDCurses滚动问题

Scroll PDCurses滚动问题,scroll,buffer,ncurses,curses,pdcurses,Scroll,Buffer,Ncurses,Curses,Pdcurses,每当我需要控制台中的大数据输出时,我只需使用setconsolescreenbuffersize(),这样,如果数据量超过控制台的大小,我就可以始终向后滚动 然而,当使用pdcurses时,我似乎无法使它成为一个窗口来记住它的内容。如果我将其设置为可滚动,并尝试向后滚动,则会得到空行。我查看了窗口数据结构,并没有发现任何类似于数据缓冲区的内容。我必须自己为诅咒窗口编写缓冲区吗 下面是一个示例程序。它创建一个pad,打印从1到100的数字,然后滚动回数字1。然而,没有数字,没有任何东西 #incl

每当我需要控制台中的大数据输出时,我只需使用setconsolescreenbuffersize(),这样,如果数据量超过控制台的大小,我就可以始终向后滚动

然而,当使用pdcurses时,我似乎无法使它成为一个窗口来记住它的内容。如果我将其设置为可滚动,并尝试向后滚动,则会得到空行。我查看了窗口数据结构,并没有发现任何类似于数据缓冲区的内容。我必须自己为诅咒窗口编写缓冲区吗

下面是一个示例程序。它创建一个pad,打印从1到100的数字,然后滚动回数字1。然而,没有数字,没有任何东西

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

int main()
{
    WINDOW  *w;
    int     i;

    if (initscr() != NULL)
    {
            if ((w = newpad(25,80)) != NULL) 
            {
                    scrollok(w,TRUE);
                    for (i = 1 ; i <= 100 ; i++) 
                    {
                            Sleep (50);
                            wprintw(w,"%d\n",i);
                            prefresh(w,0,0,0,0,24,79);
                    }
                    while (true)
                    {
                        Sleep (50);
                        wscrl (w, -1);
                        prefresh(w,0,0,0,0,24,79);
                    }
            }
            endwin();
    }
    return 0;
}
#包括
#包括
int main()
{
窗口*w;
int i;
如果(initscr()!=NULL)
{
如果((w=newpad(25,80))!=NULL)
{
scrollok(w,TRUE);
因为(i=1;iPDcurses(像任何其他curses应用程序一样)只记住屏幕上的内容。如果您需要屏幕外的数据,是的-您必须自己管理