输入计算符,怎么只输入一个字符,运行是对的,但是如果输入+-,程序会按-算,我想让系统报错

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    float a,b,s;
    char op;
    int flag=1;
    cin>>a>>op>>b;
    if(op=='+')
    {
     s=a+b;
    }
    else if(op=='-')
    {
   s=a-b;
    }
    else if(op=='*')
    {
        s=a*b;
    }
    else if(op=='/')
    {
        if(b==0)
        {
           flag=0;
        }
        else
        {
           s=a/b;
        }
    }
  else if(op!='+'&&op!='-'&&op!='*'&&op!='/')
    {
        flag=0;
    }
if(flag==1)
{
    cout<<fixed<<setprecision(2);
    cout<<s<<endl;
}
if(flag==0)
{
  cout<<"Wrong input!"<<endl;
}
    return 0;
}

你可以判断字符串中有没有连续出现运算符,但是这个代码中,使用的是float和char来接收运算符,没法判断是否输入了连续的运算符,如果非要判断的话,可以判断op是运算符并且b是否是负数,如果同时满足上面的两个条件,就说明读入了连续的运算符,但是这样的话,这个代码就没法处理负数了。

输入1+-5并不是按-算,他收到的是a=1,op=+,b=-5了,因此结果像a-b的样子。这个输入在逻辑上没问题的。