QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 731|回复: 6

putc的buffer问题

[复制链接]
发表于 2005-2-2 00:25:35 | 显示全部楼层 |阅读模式
为什么每次调用putc(c, stdout)都会显示
输出流默认是行缓存的啊

<unix环境高级编程>有例子
发表于 2005-2-2 00:50:49 | 显示全部楼层
我用putc没有啊,要不你贴出例子来。
回复

使用道具 举报

 楼主| 发表于 2005-2-2 01:21:58 | 显示全部楼层
#include <stdio.h>

int main()
{
        int        c;
        while ( (c=getc(stdin) != EOF) ){
                if ( putc(c, stdout) == EOF ) {
                        printf("error output!");
                }
               
        }

        if (ferror(stdin)) {
                printf("error input!");
        }
        return 0;
}
回复

使用道具 举报

发表于 2005-2-2 10:00:09 | 显示全部楼层
试过,没有你说的现象。
回复

使用道具 举报

 楼主| 发表于 2005-2-2 22:35:17 | 显示全部楼层
输一个字母,回车,就又显示了
回复

使用道具 举报

发表于 2005-2-2 23:16:24 | 显示全部楼层
我的没有,可能系统不一样。
回复

使用道具 举报

 楼主| 发表于 2005-2-4 00:56:27 | 显示全部楼层
是回车的原因,会刷新缓冲区
如果把输出重定向到文件,就不会刷新缓冲区
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-6 15:30 , Processed in 0.045234 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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