-1

コンソールに大きなデータ出力が必要なときはいつでも setconsolescreenbuffersize() を使用するだけなので、データ量がコンソールのサイズを超えた場合はいつでもスクロールバックできます。

ただし、 pdcurses を使用すると、ウィンドウがその内容を記憶するようにできないようです。スクロール可能に設定してスクロールバックしようとすると、空の行が表示されます。WINDOW データ構造を調べましたが、データ バッファに似たものは見つかりませんでした。curses ウィンドウのバッファを自分でコーディングする必要がありますか?

これがプログラムの例です。パッドを作成し、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;
}
4

1 に答える 1