喜欢编写游戏的朋友们,你们有福了,这个资料足以让你玩转WINDOWS和Linux下的光标定位以及颜色,enjoy it。
一、WINDOWS:
1.光标定位函数:
复制代码 代码如下:
#include <windows.h>
#include <conio.h>
/****** 光标移到指定位置 ********************************/
void gotoxy(HANDLE hOut, int x, int y)
{
COORD pos;
pos.X = x; //横坐标
pos.Y = y; //纵坐标
SetConsoleCursorPosition(hOut, pos);
}
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);//定义显示器句柄变量
gotoxy(hOut,20,30); //光标定位在坐标(20,30)
2.颜色控制:
2.1函数实现
复制代码 代码如下:
/******设置文本为绿色 ********************************************/
void Set_TextColor_Green (void)
{
HANDLE Handle = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(Handle, FOREGROUND_INTENSITY | FOREGROUND_GREEN);
}
2.2 system
system("color 0D");//设置文本为粉红色
注:1.0-15为16种颜色。
2.0D中0为背景颜色,D为字体颜色。
3.清屏
system("cls");
二、Linux:
在linux/unix的字符界面下,可以利用一些控制符来定位显示位置、控制颜色、清屏等。
printf("33[47;31mhello world33[5m");
47是字背景颜色, 31是字体的颜色, hello world是字符串. 后面的33[5m是控制码.
颜色代码:
QUOTE:
字背景颜色范围: 40--49 字颜色: 30--39
40:黑 30:黑
41:红 31:红
42:绿 32:绿
43:黄 33:黄
44:蓝 34:蓝
45:紫 35:紫
46:深绿 36:深绿
47:白色 37:白色
ANSI控制码:
QUOTE:
33[0m 关闭所有属性
33[1m 设置高亮度
3[4m 下划线
33[5m 闪烁
33[7m 反显
33[8m 消隐
33[30m -- 33[37m 设置前景色
33[40m -- 33[47m 设置背景色
33[nA 光标上移n行
3[nB 光标下移n行
33[nC 光标右移n行
33[nD 光标左移n行
33[y;xH设置光标位置
33[2J 清屏
33[K 清除从光标到行尾的内容
33[s 保存光标位置
33[u 恢复光标位置
33[?25l 隐藏光标
33[?25h 显示光标