C++实现在“小黑框”不同位置不同颜色输出
分享这个是因为有大作业要完成,可能需要一个展示的界面。但是老师与大佬推荐的方法上手需要时间。所以我在这里利用“小黑框”来 简陋的把程序里面的东西展示出来。原理不会太细讲,代码也就几行。
首先,开个cpp。include以下的头文件。
#include<iostream>
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
#include <time.h> //如果程序需要时间间隔的话
using namespace std;
然后接下来就是要实现功能的函数体,这个函数体的功能是,修改小黑框的光标位置(输出位置)。首先先把各种颜色做成个枚举类,懒得记数字了。
//颜色的代码: 0=黑色 1蓝色 2 绿色 3湖蓝色 4红色 5紫色 6黄色 7白色 8灰色 9淡蓝色
enum colour{black,blue,green,lake_blue,red,purple,yellow,white,grey,baby_blue};
然后下面是函数体,功能在注释里介绍。
void move(int x,int y, int forecolour=white ,int backcolour=black){ //forecolour 是设置字体颜色,backcolour是设置背景颜色
HANDLE handle; //获取句柄
COORD coord; //获取坐标轴结构体
coord.X = x;
coord.Y = y;
handle = GetStdHandle(STD_OUTPUT_HANDLE); //获取小黑框的句柄
SetConsoleCursorPosition(handle, coord); //移动光标到x,y处
SetConsoleTextAttribute(handle, forecolour + backcolour * 0x10);//改变当前光标的背景和字体颜色
}
之后,就可以在main里开心的玩耍了。例如如下的程序。
int main() {
int i;
for(i=1;i<10;i++){
move(i,i,i,black);
cout<<" "; //空格等价于输出小方块
Sleep(500); //中间暂停500毫秒
}
move(i,i,black,white);
return 0;
}
运行这个程序可以在小黑框中生成从左上往下一直生长的颜色不同的矩形串,每隔0.5s增加一个。如图:
然后,如果想做成动态的动画,只需要把原来的全部变黑然后把新的画上去就行。下面一个程序就展示了一个斜向下落的矩形块。
int main() {
int i;
for(i=1;i<10;i++){
move(i-1,i-1,black,black);//清除掉上一个色块
cout<<" ";
move(i,i,i,black);
cout<<" "; //空格等价于输出小方块
Sleep(500); //中间暂停500毫秒
}
move(i,i,black,white);
return 0;
}