免费注册 查看新帖 |

Chinaunix

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

fflush的问题请教大家 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-04-01 17:05 |只看该作者 |倒序浏览
redhat AS3下,用ffush(stdin)好像不起作用艾。同样的程序放到windows平台下用vc+proC运行完全没有问题;但在redhat+PROC下(编译也没有问题)运行时输入缓冲区老有问题,好像fflush(stdin)不起作用一样。请教大家unix下如何清除缓冲区!
以下代码在linux上运行输入字母时出现死循环,在windows下就不会出现。
#include "stdio.h"
main()
{
int action;
for(;
{
printf("\n 1 uery,";
printf(" 2 :Insert,";
printf(" 3 :Update,";
printf(" 4 elete,";
printf(" 5 :Exit\n";

printf("----------Please select the corresponding Number--------:";
if (scanf("%d",&action)==0) {printf("\n*** INPUT ERROR ***\n";fflush(stdin);continue;}

fflush(stdin);

switch(action)
{
case 1:
printf("11111";
break;
case 2:
printf("22222";
break;
case 3:
printf("33333");
break;
case 4:
printf("44444");
break;

case 5:

exit(1);
default:
printf("Input ERROR!!!");
break;

}
}
}
大家教我如何清楚缓冲区!谢~
--------------------------------------------------------
gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-42)
gcc -o test test.c  
----------------------------------------------------------
为了好看起见,我把数据库调用的删了。

论坛徽章:
0
2 [报告]
发表于 2005-04-04 11:37 |只看该作者

fflush的问题请教大家

up
怎么没人回答啊

论坛徽章:
0
3 [报告]
发表于 2005-04-04 11:49 |只看该作者

fflush的问题请教大家

fflush(stdin) 本来就是无效的。


你要自己把多余的字节读出并扔掉。

论坛徽章:
0
4 [报告]
发表于 2005-04-04 11:50 |只看该作者

fflush的问题请教大家

win_hate出关了??哈哈   

论坛徽章:
0
5 [报告]
发表于 2005-04-04 11:54 |只看该作者

fflush的问题请教大家



忙得要死。

论坛徽章:
0
6 [报告]
发表于 2005-04-04 11:59 |只看该作者

fflush的问题请教大家

我觉得没有多余的字符啦
而且就算有也已经用“scanf("%d",&action)==0)”读走了
怎么会这样???

论坛徽章:
0
7 [报告]
发表于 2005-04-04 13:06 |只看该作者

fflush的问题请教大家

我试了下
改用read(2)代替scanf来读就没事了
记得把回车符也读出来

论坛徽章:
0
8 [报告]
发表于 2005-04-04 17:28 |只看该作者

fflush的问题请教大家

read(2)怎么用的,请教!
我写read(stdin,&action,2) 好像不对嘛

论坛徽章:
0
9 [报告]
发表于 2005-04-04 17:35 |只看该作者

fflush的问题请教大家

read(stdin,&action,1)
read(stdin,NULL,1)
分开读
呵呵

论坛徽章:
0
10 [报告]
发表于 2005-04-05 10:21 |只看该作者

fflush的问题请教大家

谢谢楼上,但我调不成功嘛,楼上什么环境下,代码贴出来如何?THANKS
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP