计算器
这是我写的计算器,但是这个计算器识别非法字符的部分不行,谁能帮我改进下#include<iostream>
#include<cmath>
using namespace std;
int main()
{
float a,b;
char op;
cout<<"\n说明:此计算器仅支持数字的加减乘除运算,如果输入非法字符程序会停止运行,此时按任意键即可退出程序\n";
for(;;)
{
cin>>a>>op>>b;
if(isalpha(a)!=0)
cout<<" ";
else if(isalpha(b)!=0)
cout<<" ";
else
{
switch(op)
{
case'+':cout<<a+b<<'\n';
break;
case'-':cout<<a-b<<'\n';
break;
case'*':cout<<a*b<<'\n';
break;
case'/':
if(b==0)
cout<<"错误,除数不能为0 \n";
else
cout<<a/b<<'\n';
break;
default:cout<<"错误! \n";
}
}
}
return 0;
} 输入字母什么的,直接就停止运行了,不会按我写的输出空格符。 你要学习一下输入流处理的相关函数,包括clear,ignore,fail等,用来判断输入流的状态,因为如果输入流有错误,那么可能和你想要的结果完全不同 BngThea 发表于 2017-12-7 20:58
你要学习一下输入流处理的相关函数,包括clear,ignore,fail等,用来判断输入流的状态,因为如果输入流有错 ...
能不能用异常处理来分辨非法字符? Marth 发表于 2017-12-7 21:59
能不能用异常处理来分辨非法字符?
可以,但是流处理你是绕不开的
页:
[1]