C中的计算器程序
发布时间:2020-12-16 09:48:58 所属栏目:百科 来源:网络整理
导读:我想用C写一个计算器程序. 输入必须完全采用以下形式: a oper b 其中a,b是double和oper类型的数字是这些字符,–,*,/. 码: int main(){ char oper; double a,b; printf("What do you want to calculate?n"); if (scanf("%lf %1[-+/*] %lf",a,oper,b) != 3)
我想用C写一个计算器程序.
输入必须完全采用以下形式: a oper b 其中a,b是double和oper类型的数字是这些字符,–,*,/. 码: int main() { char oper; double a,b; printf("What do you want to calculate?n"); if (scanf("%lf %1[-+/*] %lf",&a,&oper,&b) != 3) printf("Error. Invalid input.n"); else { switch(oper) { case '+': printf("%f+%f=%.2f",a,b,a+b); break; case '-': printf("%f-%f=%.2f",a-b); break; case '*': printf("%f*%f=%.2f",a*b); break; case '/': if(b != 0) { printf("%f/%f=%.2f",a/b); break; } else { printf("Error! You can not divide by 0."); break; } default: printf("Error! Invalid operator."); break; }} return 0; } 问题: 当用户输入例如此输入时: 123 该计划将冻结. 同时当用户输入例如这些输入时: 123 5 123 ab Hello 我们的程序将打印 ERROR. Invalid input. 我真的需要你的帮助.如果我们输入此输入,请你修改我的代码,例如: 123 我们的程序将打印 ERROR. Invalid input. Thaks 解决方法
从fgets开始:
char buffer[256]; printf("What do you want to calculate?n"); fgets(buffer,256,stdin); if (sscanf(buffer,"%lf %1[-+/*] %lf",&b) != 3) printf("Error. Invalid input.n"); // .. rest of the code (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |