Linux小程序进度条--缓冲区理解

对缓冲区的理解

案例

1.
printf("hello 104!\n");
sleep(2);
//现象:当运行后显示器会立即显示hello 104的内容;

2.
printf("hello 104!");----➡️去掉\n后
sleep(2);
//现象:当运行后过2秒后才显示hello 104的内容
printf肯定比sleep先执行了,只不过数据没有被立马显示出来罢了;
hello 104在缓冲区里面

对缓冲区的理解(先了解,以后会详讲)

✳️是缓冲区就是一段内存空间;
有两种策略:1.立马将内存中的空间显示出来—刷新策略(行刷新)
行刷新:你要输出的这行字符串是不是一个完整行,只要是一个完整行我就立马给你刷新出来,你不是对不起我就不刷新,等缓冲区满了或者程序退出了或是碰到了换行符我再把你刷新出去;
❓如果我不想用\n就想让你的数据立马刷新?
✳️就要谈谈stdout(标准输出);我们总共有三个输入输出流;现在呢我们想要数据立马刷新出来,我们就需要刷新一下stdout,因为我们是往显示器上打的数据;
❓那我们怎么去刷新呢?
✳️系统接口:fflush

用法
 #include <stdio.h>
 int fflush(FILE *stream);

案例
```css
printf("hello 104!");----➡️去掉\n后
fflush(stdout);
sleep(2);
当运行后hello 104数据立马显示出来

讲讲回车 vs 换行

✳️弄清楚回车与换行:就拿作文纸来举例,我们当我们在一行写了字,我们换行,严格意义上讲换行应该就是到你最后一个字的下方,而不是从头开始!
若是跳转到最左侧然后再到下行这严格意义上来讲是回车 ➕换行一起的功能(即回车就是将光标回到当前行的开始)
回车即为:\r;换行即为:\n;
✳️我们倒计时,是不是在一行里面数字是覆盖式的显示出来9 8 7…(同一个位置上)
int cnt =9;

while(cnt)
{
	printf("%d\n",cnt);
	sleep(1);
}
则会每隔一秒再另起一行打出数字(但不是我们想要的倒计时,按理应该是同一行同一个位置每隔一秒显示一个数字的,则应该是用\r,而不是\n)
while(cnt)
{
	printf("%d\r",cnt);-----➡️改为\r
	sleep(1);
}
会发现屏幕上一直不显示内容!
解答:因为没有触发行刷新!这就要用到fflush了
while(cnt)
{
	printf("%d\r",cnt);-----➡️改为\r
	fflush(stdout);
	sleep(1);
}
这样便完成了!也是编写进度条到预备工作

进度条

#include <stdio.h>
  2 #include <string.h>
  3 #include <unistd.h>
  4 
  5 #define NUM 101
  6 void process()
  7 {
  8   char buf[NUM];
  9   memset(buf,'\0',sizeof(buf));
 10 
 11   const char* sign = "|/-\\";
 12 
 13    int cnt =0;
 14    while(cnt <= 100)
 15    {
 16       printf("[%-100s][%d%%]%c\r",buf,cnt,sign[cnt % 4]);//----预留100个空间出现一个#才占一个空间
 17       fflush(stdout);
 18       buf[cnt++] = '#';
 19       usleep(20000);
 20    }
 21    printf("\n");
 22 }                                                                                                                                                                                                 
 23 
 24 int main()
 25 {
 26   process();
 27   return 0;
 28 }

gitee

git什么是版本管理

✳️git是一个软件工具,gitee是基于git工具,搭建起来的网站

使用

#git clone ➕仓库地址
会要我们输入账号和密码(gitee的账号和密码)
便会给我们云服务器路径下给我们有一个仓库
若想提交test.c则输入#git add ➕test.c;然后git commit -m “我的练习”(吧test.c添加到本地仓库,然后“”里面输入的日志);然后#git push 然后输入账号和密码就能再远端仓库可以看到了;
git log可以看自己提交的历史信息请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 微信小程序中有两种进度条样式可以选用: 1. 基础进度条:使用 wx:progress 组件实现,可以通过设置百分比值来展示进度条的进度,例如: ```html <wx:progress percent="{{percent}}" show-info stroke-width="2" /> ``` 在对应的 js 文件中,需要定义 percent 变量并赋值,控制进度条的进度。 2. 活动进度条:使用 wx:active-progress 组件实现,可以在进度条上展示动态效果,例如: ```html <wx:active-progress active-color="#f00" percent="{{percent}}" /> ``` 在对应的 js 文件中,同样需要定义 percent 变量并赋值,控制进度条的进度。active-color 属性用于设置进度条的颜色。 以上两种进度条样式均可在微信官方文档中查看更多详细信息。 ### 回答2: 微信小程序进度条样式可以通过使用原生的进度条组件或者自定义样式来实现。 1. 使用原生的进度条组件: 微信小程序提供了Progress组件,可以直接在wxml文件中引入并设置进度值。 例如,在wxml文件中添加以下代码: ``` <progress percent="{{50}}" show-info strokeWidth="{{4}}" active /> ``` 其中,percent表示进度的百分比,show-info表示是否显示进度文字,strokeWidth表示进度条的粗细,active表示是否显示进度条的活动态。 2. 自定义进度条样式: 如果想要自定义进度条的样式,可以使用view组件来模拟进度条,并通过设置不同的样式来实现不同的效果。 例如,在wxml文件中添加以下代码: ``` <view class="progress"> <view class="progress-inner" style="width: 50%;"></view> </view> ``` 在对应的wxss文件中添加以下代码: ``` .progress { width: 200rpx; height: 20rpx; background-color: #eee; border-radius: 10rpx; overflow: hidden; } .progress-inner { height: 100%; background-color: #3f7; border-radius: 10rpx; } ``` 通过设置.progress-inner的宽度来控制进度条的进度。 以上就是微信小程序进度条样式的实现方法,可以根据具体需求选择使用原生组件还是自定义样式。 ### 回答3: 微信小程序中,可以通过使用wx.showLoading()和wx.hideLoading()函数来实现进度条样式。 wx.showLoading()函数可以在界面上显示一个加载中的进度条,提示用户操作正在进行中。它接受一个参数,即loading的文本提示。 例如,代码片段如下: wx.showLoading({ title: '加载中', mask: true }) 此时,界面上会出现一个显示 "加载中" 的进度条,同时,通过mask参数设置为true,防止用户进行其他的交互操作。直到通过wx.hideLoading()来隐藏进度条。 wx.hideLoading()函数可以隐藏之前显示的进度条。 例如,代码片段如下: wx.hideLoading() 通过调用这个函数,之前显示的进度条会消失。 总结起来,微信小程序进度条样式可以通过使用wx.showLoading()和wx.hideLoading()函数来实现。在需要显示进度条的地方调用wx.showLoading()函数,在完成相应操作后,通过wx.hideLoading()函数来隐藏进度条。这样可以提高用户体验,让用户对操作的进展有一个直观的感受。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值