1、在Window下可以使用
成都创新互联主要从事成都网站设计、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务安岳,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
system("mode
con
cols=30
lines=20")
命令设置窗体大小。
如果需要动态设置大小,可以写成如下形式:
char
stCmd[128];
sprintf("mode
con
cols=%d
lines=%d",
height,
width);
system(stCmd);
2、system函数:
原型:int
system(const
char
*
command);
功能:执行
dos(windows系统)
或
shell(Linux/Unix系统)
命令,参数字符串command为命令名;
说明:在windows系统中,system函数直接在控制台调用一个command命令。在Linux/Unix系统中,system函数会调用fork函数产生子进程,由子进程来执行command命令,命令执行完后随即返回原调用的进程;
头文件:stdlib.h;
返回值:命令执行成功返回0,执行失败返回-1。
可以使用如下调用实现设置:
system("mode con cols=w lines=h");
其中w和h为需要设置的常数。
如
system("mode con cols=300 lines=200");
就是设置缓冲区宽为300字符,高位200行。
其原理为:
system函数为调用系统shell命令,对于windows来说,就是dos命令。
在dos命令中,mode命令可以设置输出设备的缓冲区。
第一个参数con表示要设置的是命令行终端(console);
第二参数为设置宽度;
第三个参数为设置高度;
二三两个参数可以不同时存在,如果只有cols部分,则只设置宽度,高度不变;如果只有lines部分,就是只设置高度,宽度不变。
在Windows操作系统下用C语言控制输出窗口大小首先需要调用GetStdHandle函数获得窗口句柄,然后再调用相关函数修改窗口大小,如下所示:
#include stdio.h
#include windows.h
#include conio.h
...
HANDLE hOut; /*标准输出句柄*/
COORD size = {44, 7}; /*窗口大小*/
SMALL_RECT rc = {0, 0, 44-1, 7-1}; //要设置的窗口显示的大小和位置
CONSOLE_CURSOR_INFO cursor = {1, FALSE}; /*光标信息,用于隐藏光标*/
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleWindowInfo(hOut, TRUE, rc);
SetConsoleScreenBufferSize(hOut, size);
SetConsoleCursorInfo(hOut, cursor);
CloseHandle(hOut);
...
函数GetStdHandle可以获取当前标准输入以及输出设备的句柄。函数原型为:
HANDLE GetStdHandle(DWORD nStdHandle);
/*
其中,nStdHandle可以是
STD_INPUT_HANDLE 标准输入设备句柄
STD_OUTPUT_HANDLE 标准输出设备句柄
STD_ERROR_HANDLE 标准错误设备句柄
*/
需要说明的是,“句柄”是Windows最常用的一个概念。它通常用来标识Windows资源(如菜单、 图标、窗口等)和设备等对象。虽然可以把句柄理解为是一个指针变量类型,但它不是对象所在的地址指针,而是作为Windows系统内部表的索引值来使用的。调用结束后,需要通过调用CloseHandle函数来关闭输入输出句柄。