#include<iostream>
#include<iomanip>
using namespace std;
void main()
{
double leftoperand,rightoperand,result;
char operate;
cout<<"please input leftoperand operate rightoperand:"<<endl;
cin>>leftoperand>>operate>>rightoperand;
switch(operate)
{
case '+':
result=leftoperand+rightoperand;
break;
case '-':
result=leftoperand-rightoperand;
break;
case '*':
result=leftoperand*rightoperand;
break;
case '/':
if(rightoperand)
{result=leftoperand/rightoperand;
break;
}
else
{ cout<<"illegal operate input:"<<endl;
break;
}
}
cout<<leftoperand<<operate<<rightoperand<<"equals"<<result<<endl;
程序是正确的....只是我还有些疑问
如果我输入5+6回车 结果是:5+6equals11
可是如果我输入5空格+空格6回车 这样结果还是:5+6equals11
照理上面定义了operate是字符变量...应该把空格辅值给operate的啊!!!
求教!
}
----------------解决方案--------------------------------------------------------
自己编个短程序试一下,就会发现
cin >> 字符变量
与
scanf("%c",&字符变量)
到底有何微妙区别了
----------------解决方案--------------------------------------------------------
试了一下发现scanf是会把空格读进来的,而cin不会...
----------------解决方案--------------------------------------------------------