初学编程,还是不要去管什么色彩了,把基础的语法练好再说,否则给你答案你也看不懂。
下面这个就是其中一个答案:以后再看吧。
/**
*
功能:
设置控制台光标位置
*
参数:
x, y 光标位置
*
返回值: int值,出错代码可用GetLastError()获取
*/
int console_gotoxy(int x, int y)
{
COORD coord;
coord.X = x;
coord.Y = y;
return SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
/**
*
功能:
获取控制台当前光标位置
*
参数:
x 坐标指针, y 坐标指标
*
返回值: int值,出错代码可用GetLastError()获取
*/
int console_get_xy(int *x, int *y)
{
CONSOLE_SCREEN_BUFFER_INFO csbInfo;
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
int result
= GetConsoleScreenBufferInfo(handle, &csbInfo);
assert( handle != INVALID_HANDLE_VALUE );
*x = csbInfo.dwCursorPosition.X;
*y = csbInfo.dwCursorPosition.Y;
return result;
}
/**
*
功能:设置控制台文本色彩
*
参数:fcolor -- 前景色(0~15),bcolor -- 背景色(0~7)
*
返回:int值,出错代码可用GetLastError()获取
*/
int console_set_color(ushort fcolor, ushort bcolor)
{
WORD txt_attrib;
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
assert( handle != INVALID_HANDLE_VALUE );
txt_attrib = bcolor << 4 | fcolor;
return SetConsoleTextAttribute(handle, txt_attrib);
}