vc中回车键按下后会跳过scanf的解决方法

/*计算器循环代码*/
#include<stdio.h>
#include<math.h>
int main(void)
{
	double number1=0.0;
	double number2=0.0;
	char operation=0;       /*操作数必须为'+'、'-'、'*'、'/'、'%'*/
	char re=0;
    ret:
	{
	    printf("请输入计算式:\n");
     	scanf("%lf %c %lf",&number1,&operation,&number2);
    	switch(operation)
		{
    	case '+':
	    	printf("\t=%lf\n",number1+number2);
	    	break;
        case '-':
		    printf("\t=%lf\n",number1-number2);
	    	break;
    	case '*':
	    	printf("\t=%lf\n",number1*number2);
	    	break;
    	case '/':
    		if(number2==0)
		    	printf("输入错误,除数不能为零\n");
	    	else
		        printf("\t=%lf\n",number1/number2);
	        break;
    	case '%':
	    	if(number2==0)
	    		printf("输入错误,除数不能为零\n");
	    	else
	    	    printf("\t=%ld\n",(long)number1%(long)number2);
    	break;
    	default:
	    	printf("输入错误\n");
	    	break;
		}
	}
    ret1:
	{
		printf("是否继续计算(Y or N):");
    	scanf("%c",&re);
    	switch(re)
		{
    	case 'Y':case 'y':
    		goto ret;
     	break;
    	case 'N':case 'n':
    	    return 0;
		break;
     	default:
    		printf("输入错误");
    		goto ret1;
		break;
		}
	}
return 0;

}

 运行结果如下所示:


多了一行的不需要的提示,解决方法为程序中两处scanf()函数后添加一个getchar()函数来接收回车字符。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值