查看: 62|回复: 0

[教程] Linux用make指令编译进度条程序

[复制链接]

3

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2010-7-9
发表于 2023-11-17 00:00:00 | 显示全部楼层 |阅读模式

本文实例为大家分享了Linux下写一个简单进度条的具体代码,供大家参考,具体内容如下

首先建立一个新的文件,touch progress_bar.c 执行该vim progress_bar.c命令,写进度条的程序。写进一个进度条程序:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include<stdio.h>
#include<unistd.h>
#include<string.h>
 
void progress()
{
 int i = 0;
 char bar[102];
 memset(bar,0,102*sizeof(char));
 const char* lable="|/-\\";
 while(i <= 100)
 {
  bar = '#';
  printf("[%-101s] [%d%%] [%c]",bar,i,lable[i%4]);
  fflush(stdout);
  usleep(100000);
  i++;
 }
 printf("\n");
}
 
int main()
{
 progress();
 return 0;
}

如图:

Linux用make指令编译进度条程序

该代码中需要注意的小细节:

1. const char* lable=”|/-\\”; 直接输入一个\会被系统认为是转义,所以要输入\\
2. printf(“[%-101s] [%d%%] [%c]”,bar,i,lable[i%4]);这里的%%同上,防止转义。rate%4防止溢出
3. fflush(stdout); 参数为标准输出流
4. 因为sleep默认单位为秒,不便于测试,usleep默认单位为微秒

最后,进行调试,建立一个mymakefile文件,touch mymakefile对该文件进行编辑vim mymakefile。

?
1
2
3
4
5
myprogress_bar:progress_bar.c
  g++ -o myprogress_bar progress_bar.c
:PHONY clean
  clean:
  rm -f myprogress_bar

如图所示: 

Linux用make指令编译进度条程序

然后执行make命令,对progress_bar.c文件进行编译,make -f mymakefile,即生成myprogress_bar文件,用./myprogress_bar对他进行执行。若想重新进行编译,则需要make -f mymakefile clean指令,先对文件progress_bar进行清除,再用make进行编译。

如图:

Linux用make指令编译进度条程序

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部