控制台大小设置
手动控制
- 在输出的控制台设置大小
1.打开控制台,右键如图任一部分,点击属性(p)
2.如图中,选择第三栏—布局----去掉勾选之后即可进自行调节
注意:
- 屏幕缓冲区大小表示在此宽度范围内不会自动换行,如果不想自动换行输出一部分内容,可以设置较大值
- 窗口大小表示控制台的可见大小,而不会根据内容的大小进行调整,如果屏幕缓冲区宽度大于窗口大小宽度,则控制台底部会出现横向滑动条。
函数控制
1.使用控制台函数
//表示控制台窗口的大小,必须包含头文件:<windows.h>、<stdlib.h>
system("mode con cols=100 lines=50 ");
//API有关窗口信息函数
//获取控制台窗口信息
GetConsoleScreenBufferInfo();
//获取控制台窗口标题
GetConsoleTitle();
//更改指定缓冲区大小
SetConsoleScreenBufferSize();
//设置控制台窗口标题
SetConsoleTitle();
//设置控制台窗口信息
SetConsoleWindowInfo();
举例:
HANDLE handle_out; //定义一个句柄
CONSOLE_SCREEN_BUFFER_INFO scbi; //定义一个窗口缓冲区信息结构体
COORD size = {80, 25}; //定义一个坐标结构体
char strtitle[N];
handle_out = GetStdHandle(STD_OUTPUT_HANDLE); //获得标准输出设备句柄
SetConsoleScreenBufferSize(handle_out, size); // 重新设置缓冲区大小
_getch();
SMALL_RECT rc = {0, 0, 80-1, 25-1}; // 重置窗口位置和大小
SetConsoleWindowInfo(handle_out, 1, &rc);
CloseHandle(handle_out); //关闭标准输出设备句柄
/* 其中,SetConsoleScreenBufferSize函数指定新的控制台屏幕缓冲区的大小,以字符列和行为单位。指定的宽度和高度不能小于控制台屏幕缓冲区窗口的宽度和高度。指定的大小也不能小于系统允许的最小大小。这个最低取决于控制台当前的字体大小 (由用户选定)。*/
使用变量法
char chCmd[32];
sprintf(chCmd,"mode con cols=%d lines=%d",height,width);
system(stCmd);
注意: 设置时为了避免冲突,请使用手动或者代码设置,两者不需同时设置。