设置控制台大小(方案一)

 // #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 *)


文章作者: Amelie
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 个人技术心得
编程 C语言 编程 C语言 Windows 控制台 终端
喜欢就支持一下吧