先扔一个链接上来,因为怕忘:

https://blog.csdn.net/stude/article/details/7645056

https://blog.csdn.net/lindorx/article/details/78760610

以下才是代码。

做了一个控制台进度条,并显示百分比。

UPDATE: 添加定向修改字符的备忘。19.3.21  18:20

 #include <iostream>
#include <windows.h>
#include <random>
#include <time.h>
#include <string> #define COLOR_WHITE 0x0F
//#define COLOR_GREEN 0x0A #define PROCESS_SIGN ">"
#define PROCESS_SPEED 6
#define PROCESS_MAX 100
#define PROCESS_RATE 9 //MAX IS 10 static std::mt19937_64 randnum;
static CONSOLE_SCREEN_BUFFER_INFO csbi;
static HANDLE hstdout; int RandNum(int min, int max)
{
if (min < )
{
std::cout << "RandNum Function Parameter Error: The min is wrong number! " << std::endl;
return -;
} if (min >= max)
{
std::cout << "RandNum Function Parameter Error: The min and max are wrong numbers! " << std::endl;
return -;
} uint64_t tmpNum = randnum();
return tmpNum % (max - min) + min;
} int PrintWith_(const char* const str, int count, WORD color = COLOR_WHITE)
{
int ret = ; SetConsoleTextAttribute(hstdout, color);
for (int i = ; i < count; i++)
{
ret += printf(str);
}
SetConsoleTextAttribute(hstdout, COLOR_WHITE); return ret;
} void Backspace(int count)
{
PrintWith_("\b", count);
} bool Init()
{
if (PROCESS_RATE > )
{
return false;
} if (PROCESS_SPEED > PROCESS_MAX)
{
return false;
} hstdout = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hstdout, &csbi); randnum.seed(GetCurrentTime()); return true;
} int main()
{
if (!Init())
{
std::cout << "Config Error!" << std::endl; ExitProcess();
return ;
} int percent = ;
int spc = ;
while (percent < )
{
int inc = RandNum(, PROCESS_SPEED);
percent += inc;
if (percent > PROCESS_MAX)
{
inc = percent - PROCESS_MAX;
percent = PROCESS_MAX;
} Backspace(spc); PrintWith_(PROCESS_SIGN, inc, FOREGROUND_INTENSITY); char percentText[];
sprintf_s(percentText, " %d%%%%", percent);
spc = PrintWith_(percentText, , FOREGROUND_GREEN); Sleep(( - PROCESS_RATE) * );
} ////TEST:
//COORD pos = { 34, 10 };
//DWORD dWrited = 0;
//FillConsoleOutputCharacter(hstdout, '*', 5, pos, &dWrited);
//FillConsoleOutputAttribute(hstdout, FOREGROUND_BLUE, 3, pos, &dWrited);
//WriteConsoleOutputCharacter(hstdout, "■", 2, pos, &dWrited); std::cout << std::endl;
system("pause"); CloseHandle(hstdout); return ;
}

C/C++ 控制台字体的变颜变色的更多相关文章

  1. pycharm 控制台字体背景颜色设定让你美到爆

    还在为你控制台字体颜色不入眼而发愁吗? 在某些特殊时刻想要改变下字体的颜色却无从下手而发愁吗? 那你就进来看一看,瞧一瞧,之需看2分钟,花2分钟理解,花3分钟练练手就能让你的控制能字体炫酷起来! 一. ...

  2. psfstriptable - 从控制台字体中移走嵌入的Uniocde字符表

    总览 psfstriptable 字体文件 [输出文件] 描述 psfstriptable 命令从 字体文件 或者标准输入(此时的 字体文件 是单个破折号(-))读取一个可能含有嵌入Unicode字体 ...

  3. psfgettable - 从控制台字体中提取出嵌入的Unicode字符表

    总览 psfgettable 字体文件 [输出文件] 描述 psfgettable 命令从一个 .psf 格式的控制台字体中提取出嵌入的 Unicode字符表, 以易读格式输入到一个ASCII文件, ...

  4. psfaddtable - 添加一个Unicode字符表到控制台字体中

    总览 psfaddtable 字体文件 表文件 [输出文件] 描述 Psfaddtable 命令融合了 字体文件 提供的 .psf 格式的控制台字体和 表文件 提供的Unicode字符表, 生成一个带 ...

  5. python之设置控制台字体颜色

    # 设置控制台输出字体颜色 # 格式:\033[显示方式;前景色;背景色m # 采用终端默认设置:\033[0m # 红色字体 print('\033[1;31m') print('*' * 10) ...

  6. 修改 cmd 控制台字体、巧用 FontLink 使中英文独立设置

    众所周知,Windows 中 cmd 控制台窗口的字体难看,但是修改注册表是可以实现修改其字体的,但很多很棒的编程字体是没有中文的,所以在显示中文时直接调用了宋体,这绝妙的反差实在是 不忍直视.但是, ...

  7. 控制台字体怎么改为console?

    windows控制台窗口在中文版下没有console字体,如果要使用console的话就必须先将窗口转换为英文版. 1.win+R进入运行窗口,然后cmd进入命令窗口 2.在命令行窗口输入 chcp ...

  8. 改变Ubuntu控制台字体大小(转)

    输入 sudo dpkg-reconfigure console-setup 选择一个适合的字体和字号即可. 参考: http://www.codeweblog.com/%E6%94%B9%E5%8F ...

  9. Eclipse修改控制台字体

    步骤:Window-->Preference-->General-->Appearance-->Colors and Fonts-->Basic-->Text Fo ...

随机推荐

  1. hive表分区操作

    1.修复表分区命令 msck repair table table_name; 2.添加表分区操作 alter table table_name add partition(month_id='201 ...

  2. console.log()中的%d,%s等代表的输出类型

    在console.log()或console.debug()中输出时会有%d,%s等符号. %s for a String value 字符类型 %d or %i for a Integer valu ...

  3. mac 内置PHP配置多站点

    1.修改/private/etc/hosts 文件,建议用编辑器打开 最后一行加入你的网站名称(自定义),参考如下: 127.0.0.1 www.MyObj.com   2.修改/private/et ...

  4. java面向对象编程(九)--final

    1.final概念 final可以修饰变量或者方法.在某些情况下,程序员可能有以下需求: a.当不希望父类的某个方法被子类覆盖(override)时,可以用final关键字修饰. b.当不希望类的某个 ...

  5. 在eclipse上集成安装阿里巴巴代码规约P3C插件

    在eclipse上集成安装阿里巴巴代码规约P3C插件 参照网址: https://jingyan.baidu.com/article/2d5afd6923e78b85a3e28e5e.html 首先进 ...

  6. redis学习步骤

    Redis简介 redis全称REmote DIctionary Server,是一个由Salvatore Sanfilippo写的高性能key-value存储系统,其完全开源免费,遵守BSD协议.R ...

  7. java基础继承

    为什么用继承: 因为继承可以减少代码的冗余,提高维护性,为了从根本上解决存在的问题,就需要继承,就是将多个类当中的相同的地方提取到一个父类当中.父类更通用,子类更具体. 父类的继承格式 语法:publ ...

  8. page用法

    分页一般场景用于查询所有数据 包引用 import org.springframework.data.domain.Page;import org.springframework.data.domai ...

  9. 在执行hadoop fs命令时,出现WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable错误

    错误呈现: 解决过程: (参考链接:https://www.cnblogs.com/kevinq/p/5103653.html) 1.输出hadoop的详细日志,并执行hadoop fs命令来查看错误 ...

  10. Csrf_token ||| CSRF跨站请求伪造

    # 注: 部分内容参考网上,侵删   CSRF(Cross-site request forgery) 跨站请求伪造,是一种对网站的恶意利用  它会通过伪装成受信任用户的请求来利用受信任的网站来获取一 ...