免费注册 查看新帖 |

Chinaunix

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

在线急等:程序在运行getchar的时候不停顿 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-09-09 16:21 |只看该作者 |倒序浏览
我写了一个程序,其中部分代码(模拟)如下:
void SaveTable();
{
FILE *fp;

printf("Saving Tables.....\n";
fp=fopen("/usr/robin/aa.txt","w";
fprintf(fp,"aaaaaaaaaaaaaaaa\n";
fprintf(fp,"bbbbbbbbbbbbbbbb\n";
fclose(fp);
printf("Tables Have Been Saved!!\n";
fflush(stdout);
getchar();
}
不知道为什么程序在getchar的时候不停顿,如果用两个getchar的话才停顿。
注:前面的程序是列一个菜单,按2键并回车后就执行这个程序。
哪位高手指点一二,多谢多谢!!

论坛徽章:
0
2 [报告]
发表于 2004-09-09 16:28 |只看该作者

在线急等:程序在运行getchar的时候不停顿

这个问题讨论过很多次了,自己查一查吧。

或者你给出详细的代码,应该与别的输入函数,如 scanf 等有关。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2004-09-09 16:33 |只看该作者

在线急等:程序在运行getchar的时候不停顿

单就这个函数来说,没有问题。

论坛徽章:
0
4 [报告]
发表于 2004-09-09 17:25 |只看该作者

在线急等:程序在运行getchar的时候不停顿

高手说得很对,我前面确实用了scanf函数,可是用scanf函数不行吗,应该怎么改呢

论坛徽章:
0
5 [报告]
发表于 2004-09-09 17:40 |只看该作者

在线急等:程序在运行getchar的时候不停顿

那你就fflush(stdin)把输入也清空。

论坛徽章:
0
6 [报告]
发表于 2004-09-09 17:46 |只看该作者

在线急等:程序在运行getchar的时候不停顿

又学了一手,高手,再次谢谢啦!!!

论坛徽章:
0
7 [报告]
发表于 2004-09-26 11:21 |只看该作者

在线急等:程序在运行getchar的时候不停顿

getchar()与scanf()混用的时候一定要小心,原因如下:
用scanf()从键盘输入一个字符的时候必须按“回车(回车=='\n')”才能将字符赋值给变量。这时,stdin缓冲区里会留有一个'\n'。如果你紧跟着就用getchar()来从键盘获取另一个字符然后赋值给其它变量的时候,那么getchar()获得其实是stdin缓冲区里剩下的'\n'。这样就会出错误。

而getchar()获取的只是缓冲区里的一个字符而已,而且不用“回车”来确定。

请大家一定注意!!!

论坛徽章:
0
8 [报告]
发表于 2004-09-28 14:21 |只看该作者

在线急等:程序在运行getchar的时候不停顿

楼上解释的很精辟,谢谢了

论坛徽章:
0
9 [报告]
发表于 2004-09-28 14:22 |只看该作者

在线急等:程序在运行getchar的时候不停顿

楼上解释的很精辟,谢谢了

论坛徽章:
0
10 [报告]
发表于 2004-09-28 14:30 |只看该作者

在线急等:程序在运行getchar的时候不停顿

其实很简单,刷新一下边准输入就可以了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP