开关功能错误

Switch Function Error

我是 C++ 的新手,我所知道的都是从互联网上学到的(耶),上次我 "Programmed" 是半年前,但现在我决定放弃再试一次。基本上我已经决定用一个简单的计算器来刷新我的记忆,我 运行 遇到了开关功能的问题,我以前从未使用过它,我总是喜欢如果更多,但人们说它更多方便,我收到错误提示:"case label does not reduce to an integer constant".

    #include <iostream>
#include <string>
#include <sstream>
using namespace std;
string Pirmas; //Pirmas = First In English
string Antras; // Second
string Trecias; // Third
int a,b,c;
int main() {

cout << "Paprastas Skaiciuotuvas V1!"<< endl;   // Simple Calculator
cout << "*********************************"<<endl;
cout <<"Iveskite Pirmaji Skaitmeni!:"<< endl;   //  Enter First Numeral
getline(cin,Pirmas);
stringstream(Pirmas) >> a;
cout <<"Iveskite Antraji Skaitmeni!:"<<endl; // Enter Second Numeral
getline(cin,Antras);
stringstream(Antras)>> b;
cout<<"Iveskite Matematini Zenkla!(+-*/):"<<endl; // Enter Arithemic Sign
getline(cin,Trecias);
stringstream(Trecias)>>c;
switch(c){
case "+":
cout<<"Atsakymas: "<<a+b<<endl; // Answer
break;
case "-":
cout<<"Atsakymas: "<<a-b<<endl;
break;
case "*":
cout<<"Atsakymas: "<<a*b<<endl;
break;
case "/":
cout<<"Atsakymas: "<<a/b<<endl;
break;
};
return 0;
}

谢谢。 P.S 编码很棒

case表达式必须是整型表达式。虽然像“/”这样的单个字符值将被解释为整数表达式,但 "string"(字符数组)“/”不会。

所以你可以这样做:

switch(c)
{
case '-':
    ...
}

如果+、-、*、/等在这里是字符,那么你必须用单引号括起来而不是引号。因为在 C 和 C++ 中,字符是用单引号括起来的。双引号被视为字符串。