进度条小程序

        接下来通过编写一个进度条小程序来学习了解一些小知识。

目录

回车换行概念

缓冲区概念 

进度条小程序 

Linux代码上传至gitee


回车换行概念

        我们在计算机的日常使用中,常常认为回车换行是一个动作,即键盘上的enter键实现。但实际上回车代表的是将光标刷新至行起始位置,换行是指将光标刷新至同一列的下一行。下面通过代码来实验一下:

代码一:
 1 #include<stdio.h>
 2                                                                                                           
 3 int main()
 4 {         
 5   printf("hello world!\r");
 6   return 0;                
 7 }   

代码二:
 1 #include<stdio.h>
 2                                                                                                           
 3 int main()
 4 {         
 5   printf("hello world!");
 6   return 0;                
 7 }  

        上述的\r表示回车,即将光标刷新至起始行的位置。两段代码运行结果如下:

代码一:

代码二:

缓冲区概念 

         首先我们先来看两段代码及其运行结果。

代码一:

    1 #include<stdio.h>
    2 
    3 int main()
    4 {
    5   printf("hello world!\n");
    6   sleep(3);                                                                                             
    7   return 0;
    8 }

代码二: 

    1 #include<stdio.h>
    2 
    3 int main()
    4 {
    5   printf("hello world!");
    6   sleep(3);                                                                                             
    7   return 0;
    8 }

        由于代码执行结果不便保存,所以这里口述表达,自己也可以下去实验下。首先代码一的运行结果是:打印 “hello world!” 字样,然后光标闪烁3秒结束程序。代码二的运行结果是:光标闪烁3秒后,打印字样并结束程序。

        原因如下:printf函数输出的内容与最终显示在屏幕上之间存在着一个缓冲区,输出内容会先进入缓冲区后在刷新到屏幕上。为了验证,我们可以通过fflush函数在打印后立即刷新。代码如下:

  1 #include<stdio.h>
  2 #include<unistd.h>                                                                                        
  3 
  4 int main()
  5 {
  6   printf("hello world!\n");
  7   fflush(stdout);  // 立即刷新显示器
  8   sleep(3);
  9   return 0;
 10 }

进度条小程序 

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

 下面对进度条程序中重要行代码加以解释:

9行:使用“\0”初始化数组arr

15行:打印进度条,-100表示左对齐留足100个字符位

16行:对应上述“缓冲区的概念”,每次循环后立即刷新

Linux代码上传至gitee

1、在gitee上创建代码仓库

2、在Linux上安装git工具 - yum install git

3、在Linux上创建仓库目录文件 - git clone url

        url:仓库链接

4、将需要上传的代码文件放至仓库目录下 - cp 文件名 仓库目录名

5、三板斧 - 进入到仓库目录下

        git add 文件名

        git commit -m “文件说明”

        git push

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值