赞
踩
目录
使用模块化编程
- #include<stdio.h>
- #define capacity 101 //常量使用宏定义
- #define style '=' //符号方便后续修改
- extern void processbar();
修饰变量的时候一定要带extern,修饰函数的时候可以省略,因为没有函数体就表明它一定是声明
- #include"processbar.h"
- #include<string.h>
- #include<unistd.h>
- char* load ="|/-\\";
- void processbar()
- {
- char bar[capacity];
- memset(bar,'\0',sizeof(bar));
- int size = strlen(load);
-
- int cent = 0;
- while(cent <=99)
- {
- bar[cent++] = style;
- if(cent <= 99 )
- bar[cent] = '>';
- printf("[%-100s][%d%%][%c]\r",bar,cent,load[cent%size]);
- fflush(stdout);//没有\n就没法立即刷新,因为显示器模式是行刷新,因此手动刷新
- usleep(100000);//休眠xx微秒
- }
- printf("\n");
- }
-
- int main()
- {
- processbar();
- return 0;
- }
效果图,当进度未达到100时,在进度条最右端会有>,同时会有加载效果 由数组
char* load ="|/-\\";
进行实现
processbar函数只负责打印,能更好地模拟下载过程
- #include<stdio.h>
- #define capacity 101
- #define style '='
- extern void processbar();
- #include"processbar.h"
- #include<string.h>
- #include<unistd.h>
- char* load ="|/-\\";
- char bar[capacity];
- void processbar(int cent)
- {
- if(cent > 100 || cent < 0)return;
- int size = strlen(load);
-
- bar[cent++] = style;
- if(cent <= 99 )
- bar[cent] = '>';
- printf("[%-100s][%d%%][%c]\r",bar,cent,load[cent%size]);
- fflush(stdout);
- if(cent > 99)memset(bar,'\0',sizeof(bar));
-
- }
- #include"processbar.h"
- typedef void(*callback_t)(int);//回调函数
-
- void Download(callback_t cb)
- {
- int total = 100;//100MB
- int curr = 0;
- while(curr < total)
- {
- //假设有一个下载
- usleep(50000);//模拟下载的时间
- int rate = curr * 100 / total;//更新进度
-
- cb(rate);//通过回调函数显示进度
-
- curr += 1;
- }
- printf("\n");
- }
- int main()
- {
- Download(processbar);
- printf("\n");
- Download(processbar);
- return 0;
- }
临近字符串具有自动链接功能例如
printf("helloworld")
printf("hello""world")
- //颜色宏定义
- #define NONE "\033[m"
- #define RED "\033[0;32;31m"
- #define LIGHT_RED "\033[1;31m"
- #define GREEN "\033[0;32;32m"
- #define LIGHT_GREEN "\033[1;32m"
- #define BLUE "\033[0;32;34m"
- #define LIGHT_BLUE "\033[1;34m"
- #define DARY_GRAY "\033[1;30m"
- #define CYAN "\033[0;36m"
- #define LIGHT_CYAN "\033[1;36m"
- #define PURPLE "\033[0;35m"
- #define LIGHT_PURPLE "\033[1;35m"
- #define BROWN "\033[0;33m"
- #define YELLOW "\033[1;33m"
- #define LIGHT_GRAY "\033[0;37m"
- #define WHITE "\033[1;37m"
-
使用方法
1.如果你想要让某一段文字变成某个颜色
printf(YELLOW"this print msg is yellow!\n"NONE);
这两个指令相当于 开关,可以放置在任意位置。
如果开启开关,后面的所有字的颜色都会变成这个颜色
开启后关掉的话只会让某一段文字变色
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。