96SEO 2026-02-20 07:41 10
四、进度条预想的进度条效果构想代码结构一简单原理版本Makefileprocess.cprocess.hmain.c重点代码解读进度条效果

二实际工程实践版本下载逻辑Makefileprocess.cprocess.hmain.c重点代码解读改进process.hmain.c总结
三简单的美化风格Makefileprocess.cprocess.hmain.c进度条效果模拟加载中效果process.cprocess.hmain.cMakefile重点代码解读进度条效果
现象是先sleep!但是一定是printf先执行printf早就执行了只不过字符串没有被显示出来罢了。
所以在sleep期间字符串在哪里
在标准输出流。
C/C默认会打开三个文件流标准输入流、标准输出流、标准错误流。
C程序是默认有输出缓冲区的数据输出时会默认放在输出缓冲区。
之所以可以立马见到数据是因为该数据被刷新了如果没有立马见到它该数据没有被刷新被暂存在输出缓冲区stdout当中。
强制刷新fflsh(stdout)可使数据立马显示出来。
形成一个9到1的倒计时效果打印完一个数字回车回到最开始打印下一个数字覆盖上一个数字的打印结果
控制两位字符的输出宽度可达到10的倒计时效果控制三位字符的输出宽度可达到100的倒计时效果。
控制几位字符就在%d的d前面加数字。
输出结果如果不设置对齐方式可能会出现覆盖从而达不到预想效果。
输出结果左对齐在%后加上-
b比如说我们从键盘输入1234键盘读取到的并不是一千两百三十四而是1字符、2字符、3字符、4字符然后由scanf将字符串转成整数放到对应的变量里这样才有了整数。
bar[SIZE];memset(bar,\0,sizeof(bar));int
numstrlen(str);while(rateMAX_RATE){printf([%-100s][%d%%][%c]\r,bar,rate,str[rate%num]);fflush(stdout);usleep(STIME);
numstrlen(str);if(rateMAX_RATErate0){printf([%-100s][%d%%][%c]\r,bar,rate,str[rate%num]);fflush(stdout);bar[rate]STYLE;}if(rateMAX_RATE){memset(bar,\0,sizeof(bar));}
total0;while(totaltarget){usleep(STIME);totalDSIZE;process_v2(total*100/target);}printf(\n);
total0;while(totaltarget){usleep(STIME);totalDSIZE;int
ratetotal*100/target;cb(rate);}printf(\n);
main(){download(process_v2);return
️回调把一段可执行的代码像参数传递给其他代码而这段代码会在某个时刻被调用执行这就叫做回调。
这里将更新显示的进度条的函数process_v2作为参数传递给download函数在download函数中需要它时就调用它调用以函数指针的形式来实现回调函数。
版本2进度条不是在进度条函数内部进行循环打印的这样有点不好所以我们采用回调的方式来进行某种任务的通知动态更新进度条在下载任务中调用进度条
numstrlen(str);if(rateMAX_RATErate0){printf([%-100s][%.1f%%][%c]\r,bar,rate,str[(int)rate%num]);fflush(stdout);if(rateMAX_RATE){bar[(int)rate]STYLE_BODY;bar[(int)rate1]STYLE_HEAD;}else{bar[(int)rate]STYLE_BODY;}}
版本3基础上模拟实现进度条加载过程中不移动时数字不改变时即现实中加载的资源不足以1%时后面的光标一直旋转显示加载中的效果。
cnt0;if(rateMAX_RATErate0){cnt;cnt(cntnum?0:cnt);printf([%-100s][%.1f%%][%c]\r,bar,rate,str[cnt]);fflush(stdout);if(rateMAX_RATE){bar[(int)rate]STYLE_BODY;bar[(int)rate1]STYLE_HEAD;}else{bar[(int)rate]STYLE_BODY;}}
total0;while(totaltarget){usleep(STIME);totalDSIZE;double
ratetotal*100/target;if(rate50.0testcnt){totaltarget/2;testcnt--;
}cb(rate);}cb(MAX_RATE);printf(\n);
main(){download(process_v3);return
C语言有具体的语法可以设置不同的颜色具体内容大家可以自行搜索为进度条设置自己喜爱的颜色。
本篇内容的学习就到这里啦如果对友友们有帮助的话可以关注后续的创作内容哦~
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback