コンソールに大きなデータ出力が必要なときはいつでも 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;
}