赞
踩
使用\33
系列字符串完成光标控制,可参考关于linux特殊含义的转义符\033
具体例子如下:
cout << "\33[35m" << std::endl; //更改字体颜色为紫色
cout << "\33[32m" << std::endl; //更改字体颜色为绿色
cout << "\33[2J" << std::endl; //清屏
cout << "\33[0;0H" << std::endl; //光标回归原点
先写一个函数,用于绘制进度条
void showProgress(float progress, float bestScore) { const char *lable = "|/-\\"; static int index = 0; index++; if (progress > 1) { progress = 1; } int pa = progress * 100; cout << "\33[35m" << std::endl; //更改字体颜色 cout << "Optimizing......" << std::endl; cout << "BestScore=" << bestScore << std::endl; cout << "\33[32m" << std::endl; //更改字体颜色 cout << "[" + std::string(pa, '=') + ">" + std::string(100 - pa, ' ') << "] " << progress * 100 << "% [" << lable[index % 4] << "]" << std::endl; fflush(stdout); // 刷新缓冲区 }
然后将该函数放在代码正文中
cout << "\33[2J" << std::endl; //清屏
cout << "\33[0;0H" << std::endl; //光标回归原点
showProgress(progress, bestScore);//progress是一个0-1之间的数,用于表示百分比,bestScore是一个浮点数
运行效果如下
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。