hrefspace

 找回密码
 立即注册
搜索
热搜: PHP PS 程序设计
查看: 215|回复: 8

字符终端里如何实现 数字的动态更新

[复制链接]

918

主题

1129

帖子

3562

积分

超级版主

Rank: 8Rank: 8

积分
3562

论坛头条论坛元老谋士数据帝优秀版主超级版主见习版主论坛版主

发表于 2024-3-22 20:45:50 | 显示全部楼层 |阅读模式
刚才在线安装minGW,发现字符终端里的下载进度 的那些数据是动态的更新着的。

不知道在windows的cmd 里怎么实现,有人知道吗
世界上最遥远的距离,不是生与死的距离,而是我站在你面前,你却不知道我爱你
回复

使用道具 举报

0

主题

166

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2024-3-22 20:46:39 | 显示全部楼层
应该是行缓存的,不知具体是啥工具
回复

使用道具 举报

0

主题

181

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2024-3-22 20:46:46 | 显示全部楼层
该不会是退格字符吧,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

151

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2024-3-22 20:47:10 | 显示全部楼层
应该是重新刷新行的,跟控制台程序的原理是一样的吧
回复

使用道具 举报

0

主题

172

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2024-3-22 20:47:52 | 显示全部楼层
4# qianyb
我也感觉应该是行刷新
回复

使用道具 举报

0

主题

164

帖子

92

积分

关内侯

Rank: 2

积分
92
发表于 2024-3-22 20:48:01 | 显示全部楼层
"\r"就可以了。
回复

使用道具 举报

0

主题

166

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2024-3-22 20:48:12 | 显示全部楼层
6# 风云剑
写了一个小程序,找不到合适的调用函数,下面的代码勉强通过,
风云剑兄可否帮我改进一下
  1. #include<stdio.h>#include<stdlib.h>int main(){int ii=0;printf("http://bbs.emath.ac.cn\nhello,shis is asfkdlg\n");for(ii=0;ii<10;ii++)_sleep(1000),printf("\rhello,world,time elapsed:\t%d",ii*1000+ii);}
复制代码
gcc编译,有warning:

wayne.c: In function 'main':
wayne.c:7:1: warning: '_sleep' is deprecated (declared at d:\mingw452\bin\../lib/gcc/mingw32/4.5.2/../../../../include/stdlib.h:408)
回复

使用道具 举报

0

主题

185

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2024-3-22 20:49:03 | 显示全部楼层
找到了一个方法,gcc没有warning:
  1. #include<stdio.h>#include<windows.h>int main(){int ii=0;printf("http://bbs.emath.ac.cn\n");for(ii=0;ii<10;ii++)printf("\rhello,world,time elapsed:\t%d",ii*1000+ii),Sleep(1000);return 0;}
复制代码
回复

使用道具 举报

0

主题

194

帖子

38

积分

新手上路

Rank: 1

积分
38
发表于 2024-3-22 20:50:02 | 显示全部楼层
花了一个多小时,修修改改 实现了linux 命令行下 倒计时 时钟更新:
还加进去了signal.h ,不知能否基于这个实现一个响应鼠标或者键盘输入的功能来....
  1. #include <stdio.h> #include <stdlib.h>#include <signal.h> #define N 10void   sig_int(int sig)  { printf("\tOh,man!\033[0m\n");  exit(0);} int main() {        int h=1,m=1,s=N-2;        signal(SIGINT,&sig_int);           printf("Don't bother me,I am counting down.\n"                "I only recongnize: ctrl+c\n");        while(1)        {                printf("\r\033[1;31m%02d:%02d:%02d",h,m,s);                fflush(stdout);                if(h+m+s<=0) break; //死循环退出点                                                usleep(100000);        //0.1秒一次数据更新                        if(s==0){ s=N;                if (m>0) m--;                else h--,m=N-1;                        }                s--;        }        printf("\nhmm,Good patience!\033[0m\n");}
复制代码
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|hrefspace

GMT+8, 2024-4-27 14:29 , Processed in 0.073810 second(s), 23 queries .

Powered by hrefspace X3.4 Licensed

Copyright © 2022, hrefspace.

快速回复 返回顶部 返回列表