免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: stdlib.h
打印 上一主题 下一主题

看了精华区kenelxu关于缓冲区的那篇文章,仍有以下疑问! [复制链接]

论坛徽章:
0
11 [报告]
发表于 2005-08-12 17:34 |只看该作者

看了精华区kenelxu关于缓冲区的那篇文章,仍有以下疑问!

麻烦在对一下info fflush.

论坛徽章:
0
12 [报告]
发表于 2005-08-12 18:21 |只看该作者

看了精华区kenelxu关于缓冲区的那篇文章,仍有以下疑问!

我的没什么不一样

论坛徽章:
0
13 [报告]
发表于 2005-08-12 19:34 |只看该作者

看了精华区kenelxu关于缓冲区的那篇文章,仍有以下疑问!

个人认为,应当调用的是fflush(stdin)而不是setbuf;


// fflush有个动作是对缓冲区中的所有数据写入流
写入输入流是没有意义的,是无定义的,但是很多系统通常是忽略,这个造成很多人fflush(stdin)

我到如今还没有发现怎么晴空,我一般都是直接fseek到流的末尾,我自认为这样是合理的,////希望高手指点.
stdlib.h 该用户已被删除
14 [报告]
发表于 2005-08-12 22:05 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
stdlib.h 该用户已被删除
15 [报告]
发表于 2005-08-12 22:19 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
16 [报告]
发表于 2005-08-13 07:52 |只看该作者

看了精华区kenelxu关于缓冲区的那篇文章,仍有以下疑问!

原帖由 "stdlib.h" 发表:

然后,我把c=getchar()改成了scanf("%d",&i);
运行后输入一个数,如15,回车!嗯?没反应,光标往下移了一行!我再输入一个数或者字符如'a',再回车,程序才接着往下走,打印出如下结果:
97 10 10 10 0 0 0 0 0 0
over

改成了scanf("%d",&i)后,在我的机子上输15回车马上就输出了
49 53 10 10 0 0 0 0 0 0
xp+vc6

论坛徽章:
0
17 [报告]
发表于 2005-08-13 09:36 |只看该作者

看了精华区kenelxu关于缓冲区的那篇文章,仍有以下疑问!

To kukucm:
    我在我的RH7.3上试过了你说的用fseek的方法,结果是fseek(stdin,0,2)返回-1;我觉得应该是不能对标准输入流进行fseek操作。不知道你以前试过没有。
To stdlib.h:
>;>;如果每次都要setbuf(stdin,NULL)才好用的话,那与getchar()一下那个换行符,也没什么本质区别   
我这句话只是针对精华帖帖出来的那个程序而言,因为那个程序只有再getchar一个换行符就行了。你说的循环getchar直到读到换行符以后终止当然可以了。

论坛徽章:
0
18 [报告]
发表于 2005-08-13 09:47 |只看该作者

看了精华区kenelxu关于缓冲区的那篇文章,仍有以下疑问!

然后,我把c=getchar()改成了scanf("%d",&i);
运行后输入一个数,如15,回车!嗯?没反应,光标往下移了一行!我再输入一个数或者字符如'a',再回车,程序才接着往下走,打印出如下结果:
97 10 10 10 0 0 0 0 0 0
over
这下我就更糊涂了,为什么要输入两次才有反应?那个15跑哪去了?缓冲区中为什么会有三个换行符?

怀疑是这次实验你的操作有误,我在vc6上的实验结果与zlrll 完全一致。
至于为什么会有两个10,怀疑是setbuf的实现上windows下的与linux的不一致
stdlib.h 该用户已被删除
19 [报告]
发表于 2005-08-13 12:39 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
stdlib.h 该用户已被删除
20 [报告]
发表于 2005-08-13 13:03 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP