免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4029 | 回复: 4
打印 上一主题 下一主题

求助:printf的\r选项 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-02-16 17:05 |只看该作者 |倒序浏览
主要目的:在不换行显示逐渐变化的数值

源码如下:
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. //#include <windows.h>
  4. int main()
  5. {
  6.         int num = 200;
  7.         printf("this is a test of pritnf option \"\\r\"\n");
  8.        
  9.         while (num >0 )
  10.         {
  11.                 printf("\r%d",num);
  12.                 num--;
  13.                 sleep(1);
  14.         }
  15.         printf("\n");
  16.         return 0;
  17. }
复制代码
编译后执行./a.out,然后屏幕没有任何显示,等循环完了才将最后的一次结果打印出来,但是同样的操作,用VC6编译后运行就很否和要求。
哪位大侠能指点一下,我要怎么写才能出来那种在同一行不断变化输出的效果啊

论坛徽章:
0
2 [报告]
发表于 2012-02-16 17:12 |只看该作者
printf()函数会把要显示的数据存放在缓冲区中,要到一定条件如遇到\n的时候才进行输出显示。
你可以试试调用fflush()强制输出缓冲区数据。

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
3 [报告]
发表于 2012-02-16 17:29 |只看该作者
用fprintf(stderr,....吧

论坛徽章:
0
4 [报告]
发表于 2012-02-16 17:32 |只看该作者
感谢楼上,使用fflush(stdout)之后,正常刷新了

论坛徽章:
1
射手座
日期:2014-08-04 16:49:43
5 [报告]
发表于 2012-02-16 17:41 |只看该作者
  1. #include <stdio.h>
  2. #include <unistd.h>


  3. int main (int argc, char *argv[])
  4. {
  5.         int i;

  6.         for (i = 0;i < 100; i++)
  7.         {
  8.                 printf ("\ri->%d", i);
  9.                 fflush (stdout);
  10.                 usleep (6000);
  11.         }
  12.         printf ("\n");
  13.         return 0;
  14. }
  15. ~  
复制代码
希望对你能有帮助....linux下正常运行...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP