2016-11-18 27 views
-2
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文の文字列に変換したくないと言われます。この指定は、char入力を指定された文字列に変換するために必須です。switch文が文字入力を文字列出力に変換しない

ありがとうございます。

+1

ちょうどいいね!現在のコードには[case fall-through](http://stackoverflow.com/questions/8146106/does-case-switch-work-like-this)があります。 – Obicere

+0

@Obicereはい、それは払う必要があります。たとえば、ユーザーがcarInsuranceCodeとして1を入力する場合、出力は次のようになります。 – HelpMePlease123

+0

- - - CAR保険情報 - - - – HelpMePlease123

答えて

1

getCarInsuranceCodeは、2つの方法の1に実装することができます。これは、保険会社を返すことができ

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"; 
     } 
} 
+0

私が必要とするのは、入力(1、2、 3または4)、保険者を出力する。しかし、charを文字列に変換することはありません。これどうやってするの? – HelpMePlease123

+0

@ HelpMePlease123私の答えで説明した2つの方法のいずれか。あなたはそれらの2つの方法のうちの1つを選択する必要があることがわかりますか?上に貼り付けたコードでそれをしていないことがわかりますか? –

+0

@DavidSchwarts 1)保険会社に返すことができ、それを呼び出すコードがそれを出力する責任があります。 <どのように私はこの1つを実装することができますか? – HelpMePlease123

0

を、このコードはコンパイルされてはなりません。

  1. @デビッドシュワルツ氏はreturn代わりのcoutが必要とされている、言ったように。

  2. getCarInsuranceCode()には引数がありません。