Win32API コンソールスクリーンバッファのサイズを設定する SetConsoleScreenBufferSize
既定の状態ではコンソールに多数の行からなる文字列を出力すると、先に出力した文字列が消えてしまって、元に戻ってみたいときに見ることができなくなってしまう。また、コンソールに出力する行が非常に長いと意図しないところで改行が入り、見にくくなってしまう。そのようなときは、SetConsoleScreenBufferSize関数でコンソールスクリーンバッファのサイズを広げることで解決できる。
SetConsoleScreenBufferSizeのプロトタイプ
BOOL SetConsoleScreenBufferSize( HANDLE hConsoleOutput, // コンソールスクリーンバッファのハンドル COORD dwSize // 文字の行数と列数で表した新しいサイズ );
使用例
#include <windows.h> #include <stdio.h> int main() { COORD coord; coord.X = 1000; coord.Y = 1000; //コンソールスクリーンバッファが広がり、 //ウィンドウにスクロールバーが現れる SetConsoleScreenBufferSize( GetStdHandle(STD_OUTPUT_HANDLE), coord); for (size_t i = 0; i < 1000; i++) { printf("%d\n", i); } //getcharでコンソール入力待ちにし、ウィンドウのスクロールバーを //使って出力済みの文字列を確認することができるようにする。 getchar(); return 0; }