首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

c语言bug有关问题!对c语言熟悉的进来

2012-04-18 
c语言bug问题!!!!!对c语言熟悉的进来比如说:有1个程序需要选择用户类型printf(请选择:)usertypegetcha

c语言bug问题!!!!!对c语言熟悉的进来
比如说:
有1个程序需要选择用户类型
  printf("请选择:");
  usertype=getchar();
//这一行如果不加上getchar()下面的getchar()会接收不知道什么字符
switch(usertype)
{
case '1':administrator();
case '2':guest();
default:printf("无效输入");
}


可能说的不太清楚,也就是说,printf语句输出的符号,换行符等经常会被下面的getchar()误读,请问这是为什么啊,如何解决?难道这个bug是缓冲区的问题????希望高人能解答一下

[解决办法]
规范型的控制台输入是按回车后才提交给程序
所以你要按回车才能从 usertype=getchar();出来,但是此时缓冲区里面就留下了回车
[解决办法]
输入流缓冲问题.
可以在读取之前加上三者之一
rewind(stdin);// 正规
stdin->_cnt=0;// 暴力
fflush(stdin);// 微软扩展
[解决办法]
stdin就是c的
[解决办法]
是缓冲区的问题
可以用fflush(stdin);来清除缓冲区

热点排行