开关功能错误

时间:2015-07-04 19:03:23

标签: switch-statement calculator

我用C ++相当新鲜,我所知道的一切都是从互联网上学到的(Yay),以及我上次"编程"是半年前,但现在我决定再试一次。基本上我已经决定用一个简单的计算器刷新我的记忆,而且我遇到了开关功能的问题,我以前从未使用过,我总是喜欢如果更多,但人们说它更方便,我得到错误说:"案例标签不会减少到整数常数"。

    #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编码很棒

2 个答案:

答案 0 :(得分:0)

case表达式必须是整数表达式。虽然单个字符值类似于&#39; /&#39;将被解释为整数表达式,&#34;字符串&#34; (字符数组)&#34; /&#34;不会。

所以你可以这样做:

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

答案 1 :(得分:0)

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