LinuxSir.cn,穿越时空的Linuxsir!

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

[求助]printf()后怎么加个fflush(stdout);

[复制链接]
发表于 2005-5-22 16:36:30 | 显示全部楼层 |阅读模式
printf()后怎么加个fflush(stdout);
麻烦写个代码给我,

我代码是:
#include <stdio.h>
int main(void)
{
   int i;
       for(i=i;i<10;i++)
            printf("*");
            sleep (1);
}
执行结果为什么不是一个一个的出*?
而是先睡了9秒钟,在一块输出*********
我不想用在printf里加\n,
有人说加fflush(stdout);
可是怎么加呀,请高手详细告诉我
发表于 2005-5-22 18:56:04 | 显示全部楼层
把fflush(stdout); 加在 printf 一句后面,printf 是标准io库,实现了对底层system call 的封装,加入了buffer 的特性,也就是说,你的输出内存并不一定在调用了printf后就会写到输出设备上,可能会被 标准库缓存起到,而fflush 会强制把缓冲内容输出
回复 支持 反对

使用道具 举报

发表于 2005-5-22 19:00:42 | 显示全部楼层
记住加个{},还有你i=i 改成i=0或其他把,man 3 fflush看看help

int main(void)
{
int i;
for(i=0;i<10;i++)
   {
        printf("*");
        fflush(stdout);
        sleep(1);
    }
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-22 19:55:49 | 显示全部楼层
感谢楼上的兄弟
回复 支持 反对

使用道具 举报

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

本版积分规则

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