C++实现在“小黑框”不同位置不同颜色输出

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;
}
  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值