您的位置:首页 > 编程语言 > C语言/C++

C语言scanf输入char类型时遇到回车问题:

2014-04-30 16:26 302 查看
今天在学c语言的时候遇到了scanf函数接收回车问题,不多说,先看源代码:

float a = 0, b = 0;
char c;
printf("please input first number:\n");
scanf("%f",&a);
printf("please input second number:\n");
scanf("%f",&b);
printf("please input one of“+, - , * , /”\n");
scanf("%c",&c);

switch (c) {
printf("%f",a);
case'+':printf("a + b =%f\n",a + b);
break;
case'-':printf("a - b =%f\n",a - b);
break;
case'*':printf("a * b =%f\n",a * b);
break;
case '/':
if(b!=0)
{
printf("a / b =%f\n",a / b);
}else{printf("the second number can't be 0");}
break;
default:printf("input error\n");
break;
}
问题

出在标记语句处,每次输入第二个数后按回车后执行到default语句,即把回车存到了变量c中,后经百度及名师指导,得出俩中解决方案:

1.将标记语句改为

scanf("\n%c",&c);
2.在标记语句之前添加语句
getchar();

这俩中方法均可解决.

希望能对初学者有所帮助。自己也要继续努力!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: