控制台相关设置


一、窗口大小字体颜色与光标位置设置

  • 控制台句柄设置法

#include <conio.h>
#include <stdio.h>
#include <windows.h>
#if 0
int main()
{
  WORD wColor = BACKGROUND_BLUE | BACKGROUND_RED;
  COORD coord;
  DWORD written;
  // typedef void *HANDLE
  // 获取控制台缓冲句柄,固定写法
  HANDLE Console = GetStdHandle(STD_OUTPUT_HANDLE);
  //简写
  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0xD);
  puts("不知道什么颜色");
  SetConsoleTextAttribute(Console, 0xC);

  puts("红色文字");
  SetConsoleTextAttribute(Console, 0xF9);
  puts("白色文字");
  SetConsoleTextAttribute(Console, 6);
  puts(" 黄色文字");
  coord.X = 0;
  coord.Y = 0;
  WriteConsoleOutputAttribute
  FillConsoleOutputAttribute(Console, wColor, 200, coord, &written);
  return 0;
  /*WORD在windows.h中定义,等同于unsigned short,使用低4位表示文字(前景)颜色,高4位表示文字背景颜色,所以它的取值为xx。x为一位16进制数,即0~F都可以使用,可以随意组合。

0~F 分别代表的颜色如下:
0 = 黑色    8 = 灰色    1 = 淡蓝      9 = 蓝色
2 = 淡绿    A = 绿色    3 = 湖蓝      B = 淡浅绿  
C = 红色    4 = 淡红    5 = 紫色      D = 淡紫  
6 = 黄色    E = 淡黄    7 = 白色      F = 亮白*/
}
#else
#include <stdio.h>
#include <windows.h>
int main()
{
  //获取控制台缓冲区句柄
  HANDLE ConsoleHandle = GetStdHandle(STD_OUTPUT_HANDLE);

  //设置窗口大小
  system("mode con: cols=96 lines=23");

  //隐藏光标
  CONSOLE_CURSOR_INFO cci = {1, 0}; //控制台光标信息
  // GetConsoleCursorInfo(hStdin, &cci); //这一行或许多余(如果说前面定义时已经对成员赋值了)
  // cci.bVisible = 0;
  SetConsoleCursorInfo(ConsoleHandle, &cci);

  //定义光标位置
  char chars[64] = "0";
  COORD coord;
  coord.X = 20; //第5列 左右
  coord.Y = 5;  //第10行 上下

  //设置光标位置
  SetConsoleCursorPosition(ConsoleHandle, coord);
  SetConsoleTextAttribute(ConsoleHandle, 5);
  printf("?");
  scanf("%s", chars);
  getch();
}
#endif
  • printf(“\033[显示方式;字背景颜色;字体颜色m…\033[0m”)

    以默认颜色 \033[0m 结尾,以避免影响后面正常打印!

    • 显示方式
    意义字符
    默认 0
    高亮显示1
    下划线4
    闪烁 5
    反白显示7
    不可见8
    • 背景色和字体色
    颜色字体色背景色
    黑色3040
    红色3141
    绿色3242
    黄色3343
    蓝色3444
    紫红色3545
    青蓝色3646
    白色3747
#define LOG_NONE "\033[0m" // 默认显示

#define RED "\033[0;31m"
#define GREEN "\033[0;32m"
#define BLUE "\033[0;34m"
#define GRAY "\033[1;30m"   // 灰色
#define YELLOW "\033[5;33m" // 黄色 闪烁

#define LOG_RED(str) "\033[0;31m"##str##"\033[0m"   // 红色
#define LOG_GREEN(str) "\033[0;32m"##str##"\033[0m" // 绿色
#define LOG_BLUE(str) "\033[0;34m"##str##"\033[0m"  // 蓝色
#define LOG_GRAY(str) "\033[1;30m"##str##"\033[0m"  // 灰色

#define LOG_CYAN "\033[0;36m"      // 青色
#define LOG_PURPLE "\033[0;35m"    // 紫色
#define LOG_BROWN "\033[0;33m"     // 棕色
#define LOG_YELLOW "\033[5;42;33m" // 绿黄色
#define LOG_WHITE "\033[1;37m"     // 白色

二、To be continue…


总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值