LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 896|回复: 5

刚写的一小段代码,实现在屏幕中心显示一个进度

[复制链接]
发表于 2005-3-14 00:30:20 | 显示全部楼层 |阅读模式
刚写的一小段代码,实现在屏幕中心显示一个进度。主要用的是terminfo  的一些函数,实现了清屏,移动cursor,定位显示信息。


  1. #include <stdio.h>
  2. #include <term.h>
  3. #include <curses.h>

  4. int moveto(char *cup, int x, int y)
  5. {
  6.         return putp(tparm(cup,y,x));       
  7. }

  8. int main()
  9. {
  10.         char * cursor;
  11.         int x,y;
  12.         int i;
  13.         char info[] = "cur progress is:";
  14.         setupterm(NULL, fileno(stdout), NULL);
  15.         cursor = tigetstr("cup");
  16.         y = tigetnum("lines") / 2;
  17.         x = (tigetnum("cols") - strlen(info) - 4) / 2;
  18.         putp(tigetstr("clear"));
  19.         moveto(cursor, x, y);
  20.         printf("%s", info);
  21.         fflush(stdout);
  22.         for (i = 0; i <= 100; i++)
  23.         {
  24.                 moveto(cursor, x + strlen(info), y);
  25.                 printf("%3d%%", i);
  26.                 fflush(stdout);
  27.                 sleep(1);
  28.         }
  29.         printf("\n\n\n");
  30.         exit(0);
  31. }
复制代码
 楼主| 发表于 2005-3-14 00:31:22 | 显示全部楼层
gcc -o progr progr.c  -lcurses
回复 支持 反对

使用道具 举报

发表于 2005-3-14 09:13:19 | 显示全部楼层
只是一个数字,显得比较单调,能不能写一个进度条的动态界面出来?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-14 13:00:19 | 显示全部楼层
嘻嘻.小弟初学. 还得努力学习ing....
刚看到 beginning linux programming   ch5
回复 支持 反对

使用道具 举报

发表于 2005-3-14 16:51:34 | 显示全部楼层
《beginning linux programming 》是不错的,后面进程间通信的部分是精华,认真学学定能对提高水平大有帮助。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-15 21:34:22 | 显示全部楼层
嗯。谢谢kj501兄指点。我在慢慢研究。
回复 支持 反对

使用道具 举报

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

本版积分规则

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