实现一个红色字体的控制台窗口
光标定位函数gotoxy()
头文件
#include <windows.h>
实现gotoxy函数的三种方法
方法一:
void gotoxy(int x,int y)
{
COORD p ;
p.X=x;
p.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p);
}
方法二:
void gotoxy(int x,int y)
{
COORD p={x,y};//p是一个结构体可这样赋值,有的编译器可能报错但可以运行。
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p);
}
方法三:
void gotoxy(int x, int y)
{
COORD pos;
HANDLE output;
pos.X = x;
pos.Y = y;
output = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(output, pos);
}
GetStdHandle函数
简述
GetStdHandle是一个Windows API函数。它用于从一个特定的标准设备(标准输入、标准输出或标准错误)中取得一个句柄(用来标识不同设备的数值)。因为很多API函数都需要用到句柄,所以GetStdHandle是一个很重要的函数。
参数
GetStdHandle函数的参数可以是下列之一
参数 | 含义 |
---|---|
STD_INPUT_HANDLE | 标准输入句柄 |
STD_OUTPUT_HANDLE | 标准输出句柄 |
STD_ERROR_HANDLE | 标准错误句柄 |
SetConsoleTextAttribute函数
设置字体颜色(其他颜色可以CTRL+鼠标左键进入函数内部取用)
SetConsoleTextAttribute(hConsole, FOREGROUND_RED); // 设置文本颜色为红色
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); // 恢复文本颜色为默认值
最终的代码
#include <iostream>
#include <windows.h> // 需要包含Windows.h头文件
void gotoxy(int x, int y) //将输出显示到(x,y)坐标
{
COORD p;
p.X = x;
p.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), p);
}
void welcome()
{
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); // 获取控制台句柄
SetConsoleTextAttribute(hConsole, FOREGROUND_RED); // 设置文本颜色为红色
gotoxy(25, 6); std::cout << "/**************************************************/" << std::endl;
gotoxy(25, 8); std::cout << "/\t\t\t\t\t\t /" << std::endl;
gotoxy(25, 10); std::cout << "/\t\t\t\t\t\t /" << std::endl;
gotoxy(25, 12); std::cout << "/\t\tWELCOME TO MY SNACK GANME /" << std::endl;
gotoxy(25, 14); std::cout << "/\t\t\t\t\t\t /" << std::endl;
gotoxy(25, 16); std::cout << "/\t\t\t\t\t\t /" << std::endl;
gotoxy(25, 18); std::cout << "/**************************************************/" << std::endl;
SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); // 恢复文本颜色为默认值
system("pause");
system("cls");//按任意键清除屏幕内容
}
int main()
{
welcome();
}
结果截图
参考连接:
(141条消息) 如何在C/C++中定义坐标函数gotoxy()并灵活运用之_c++坐标函数_m0_z的博客-CSDN博客