依睛(IT blog) 我回来了,PHP<-->C/C++ LINUX

笨鸟

统计

积分与排名

友情连接

最新评论

请教fflush的作用

 

 

请教fflush的作用

因为不会, 想不通. 所以一定要弄清, 做一个就要成一个. 一切都会成为过去. 明天的明天还在等我.

源地址: http://bbs.bc-cn.net/thread-16519-1-1.html

请问哪位可以帮我解释一下fflush(stdin)的作用,括号里面的stdin又是什么意思,程序里面不用这个又会怎么样???

TOP

清空输入的缓冲流,stdin是标准的输入设备,定义为文件指针。。可以视作文件一样输入。。。

[此贴子已经被作者于2005-4-23 23:28:32编辑过]


我们都在命运湖上荡舟划桨,波浪起伏使我们无法逃离孤行;如果我们迷失方向,波浪将指引我们穿过另一天曙光

TOP

清流函数!
stdin 代表标准输入
Every thing is possible.

TOP

如果不用会怎么样,程序运行会不会不正常。

TOP

#include <stdio.h> #include <conio.h>

int main() { char a,b; printf("input a="); scanf("%c",&a); if(a=='a') { /* fflush(stdin); */ printf("input b="); scanf("%c",&b); if(b=='b') printf("ok\n"); } getch(); return 1; } 自己体会一下用和不用所带来的不同效果吧。。。。。。。。。。。

我们都在命运湖上荡舟划桨,波浪起伏使我们无法逃离孤行;如果我们迷失方向,波浪将指引我们穿过另一天曙光

TOP

意思就是说如果不清空缓冲,再要输入数据的时候就会缓冲满了,就输不进去数据了,是不是?
第一次在这里发贴,这里的热心人真多,谢谢大家

TOP

并不是那样,首先你注意我给出的源代码,第一scanf()接受一个字符输入,当你输入一个字符后按下回车,只有你输入的那个字符被赋给了a,而剩下的一个换行符还保留在缓冲中,当第二次输入时无论你输入的什么字符,都是无效的,缓冲就如堆栈,符合先进先出原则,既然你缓冲中先前有个换行符,那么系统在遇见第二个scanf时自动会将换行符赋给b,所以输入的东西都是无效的。。。。
我们都在命运湖上荡舟划桨,波浪起伏使我们无法逃离孤行;如果我们迷失方向,波浪将指引我们穿过另一天曙光

TOP

posted on 2008-10-13 10:56 向左向右走 阅读(360) 评论(0)  编辑 收藏 引用 所属分类: C/C++学习资料库Linux 学习库

只有注册用户登录后才能发表评论。