C语言设置文本颜色和移动光标

来源:互联网 发布:我的世界pe村民交易js 编辑:程序博客网 时间:2024/06/05 15:45

=-=终于放弃用C实现图形模式...

前辈们说的好啊,不能急躁,现在主要是打好基础。

不过,即使是文本模式的游戏,依旧可以通过一些现有的技巧做的很好。

1.设置颜色(不仅是设计游戏,平时没事也可以玩玩)

版本一:

//Must so#include<iostream>#include<conio.h>#include<windows.h>#include<cstdio>using namespace std;//设置文本颜色void SetColor(unsigned short ForeColor,unsigned short BackGroundColor){    HANDLE hCon=GetStdHandle(STD_OUTPUT_HANDLE);    SetConsoleTextAttribute(hCon,(ForeColor%16)|(BackGroundColor%16*16));}int main(){    int i,j;    while(cin>>i>>j)    {        SetColor(i,j);        cout<<"Hello World!!"<<endl;        SetColor(7,0);//恢复为黑底白字。。    }    return 0;}

版本二:

//Must so#include<iostream>#include<conio.h>#include<windows.h>#include<cstdio>using namespace std;//设置文本颜色int main(){    system("color 0A");    cout<<"Hello World"<<endl;  //  system("pause");    if (getchar())    system("cls");    system("color 0C");    cout<<"Hello World"<<endl;    return 0;}/*0=黑色1=蓝色2=绿色3=湖蓝色4=红色5=紫色6=黄色7=白色8=灰色9=淡蓝色A=淡绿色B=淡浅绿色C=淡红色D=淡紫色E=淡黄色F=亮白色*/

版本三:

设置部分颜色

//Must so#include<cstdio>#include<windows.h>//设置部分颜色int main(){    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);    SetConsoleTextAttribute(handle,FOREGROUND_RED | FOREGROUND_GREEN |FOREGROUND_BLUE );//白色    printf("要么");    SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED);//红色    printf("孤独\n");    SetConsoleTextAttribute(handle,FOREGROUND_RED | FOREGROUND_GREEN |FOREGROUND_BLUE );    printf("要么");    SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);//黄色    printf("庸俗\n");    SetConsoleTextAttribute(handle,FOREGROUND_RED | FOREGROUND_GREEN |FOREGROUND_BLUE );    return 0;}/*FOREGROUND_BLUE前景色包含 蓝色FOREGROUND_GREEN前景色包含 绿色FOREGROUND_RED前景色包含 红色FOREGROUND_INTENSITY前景色加强BACKGROUND_BLUE背景色包含 蓝色BACKGROUND_GREEN背景色包含 绿色BACKGROUND_RED背景色包含 红色BACKGROUND_INTENSITY背景色加强COMMON_LVB_GRID_HORIZONTAL顶部水平网格COMMON_LVB_GRID_LVERTICAL左竖直网格COMMON_LVB_GRID_RVERTICAL右竖直网格COMMON_LVB_UNDERSCORE下划线*/


2.光标的移动

//Must so#include<iostream>#include<conio.h>#include<windows.h>#include<cstdio>using namespace std;//光标的移动void gotoxy(int x, int y){    COORD pos;    pos.X = x;    pos.Y = y;    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);}int main(){    int i,j;    while (cin>>i>>j)    {        system("cls");        if (i < 0||j < 0) continue;        gotoxy(i,j);        cout<<"Hello World!"<<endl;    }    return 0;}



3 0
原创粉丝点击