Windows控制台相关函数
设置控制台大小(方案一)
// #include <stdlib.h>
system("mode con cols=80 lines=20");
设置控制台大小(方案二)
// #include <Windows.h>
COORD dwSize = { x, y }; // 设置缓冲区大小,x、y为宽和高
SMALL_RECT srWindow = { 0, 0, dwSize.X - 1, dwSize.Y - 1 }; // 设置窗口大小
SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE), 1, &srWindow);
SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), dwSize);
SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE), 1, &srWindow);
SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), dwSize);
注意:有时候调用一遍此函数可能不会生效,此时需要调用两次
设置控制台颜色
注意:这种方法会改变整个控制台内容的显示颜色,如果想自定义颜色,请看 改变字体颜色
// #include <stdlib.h>
system("color 0f");
在控制台输入 color --help
可以查看 color
命令的详细信息:
设置默认的控制台前景和背景颜色。
COLOR [attr]
attr 指定控制台输出的颜色属性。
颜色属性由两个十六进制数字指定 -- 第一个
对应于背景,第二个对应于前景。每个数字
可以为以下任何值:
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 浅绿色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色
如果没有给定任何参数,此命令会将颜色还原到 CMD.EXE 启动时
的颜色。这个值来自当前控制台
窗口、/T 命令行开关或 DefaultColor 注册表
值。
如果尝试使用相同的
前景和背景颜色来执行
COLOR 命令,COLOR 命令会将 ERRORLEVEL 设置为 1。
隐藏控制台光标
// #include <Windows.h>
CONSOLE_CURSOR_INFO cci;
GetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cci);
cci.bVisible = FALSE;
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cci);
改变字体颜色
// #include <Windows.h>
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 字符属性);
例:
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);
字符属性:
Attribute | 含义 |
---|---|
FOREGROUND_BLUE | 文本颜色包含蓝色。 |
FOREGROUND_GREEN | 文本颜色包含绿色。 |
FOREGROUND_RED | 文本颜色包含红色。 |
FOREGROUND_INTENSITY | 文本颜色增强(高亮)。 |
BACKGROUND_BLUE | 背景色包含蓝色。 |
BACKGROUND_GREEN | 背景色包含绿色。 |
BACKGROUND_RED | 背景色包含红色。 |
BACKGROUND_INTENSITY | 背景色增强(高亮)。 |
COMMON_LVB_LEADING_BYTE | 前导字节。 |
COMMON_LVB_TRAILING_BYTE | 尾随字节。 |
COMMON_LVB_GRID_HORIZONTAL | 顶部水平。 |
COMMON_LVB_GRID_LVERTICAL | 左垂直。 |
COMMON_LVB_GRID_RVERTICAL | 右垂直。 |
COMMON_LVB_REVERSE_VIDEO | 反转前景和背景属性。 |
COMMON_LVB_UNDERSCORE | 下划线。 |
前景属性指定文本颜色。 背景属性指定用于填充单元格背景的颜色。
比如亮白色就是:
FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE
设置光标位置
// #include <Windows.h>
COORD coord;
coord.X = 1; // 光标的X轴坐标
coord.Y = 1; // 光标的Y轴坐标
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
设置控制台标题
// #include <Windows.h>
// Visual Studio
SetConsoleTitle(L"标题");
// gcc
SetConsoleTitle("标题");
注意:
Visual Studio 项目中要使用
L"标题"
(const wchar_t *)gcc 编译直接使用
"标题"
(const char *)
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
个人技术心得!
喜欢就支持一下吧