Switch语句不会将char输入转换为字符串输出

时间:2016-11-18 17:04:30

标签: c++

char carInsuranceCode;

string getCarInsuranceCode; 

string CarInsuranceInformation::getCarInsuranceCode(char carInsuranceCode)
{
    switch(carInsuranceCode)
    {
        case '1':  cout << "AllState";
        case '2':  cout << "Geico";
        case '3':  cout << "StateFarm";
        case '4':  cout << "E-Insureance"; 
        default:   cout << "Other";
        break;                           
    }

}

void CarInsuranceInformation::printCarInsuranceInformation(void)
{
    cout << "- - - - CAR INSURANCE INFORMATION - - - "     << endl;
    cout << "Insurance Code: "<< getCarInsuranceCode()     << endl;
}

这是在头文件中完成的,不会涉及到printCarInsuranceInformation。据说char不想在switch语句中转换为字符串。必须将赋值转换为字符串中指定的字符串。

谢谢。

2 个答案:

答案 0 :(得分:1)

getCarInsuranceCode可以通过以下两种方式之一实现:

1)它可以返回保险公司,调用它的代码将负责输出它。

2)它可以输出保险公司,调用它的代码不应该尝试输出它。

看起来你做了另一半的一半 - 这是行不通的。

也许这就是你想要的,使用选项1:

string CarInsuranceInformation::getCarInsuranceCode(char carInsuranceCode)
{
     switch(carInsuranceCode)
      {
        case '1':  return "AllState";
        case '2':  return "Geico";
        case '3':  return "StateFarm";
        case '4':  return "E-Insureance"; 
        default:   return "Other";
      }
 }

答案 1 :(得分:0)

根据您的指示,此代码不应编译。

  1. 正如@David Schwartz所说,需要return代替cout

  2. 您对getCarInsuranceCode()的来电没有争议。