2017-11-28 16 views
0

私はC++での初心者です、私は小さなプログラムを作成しようとしました、 私があればと少し問題がなかった(入力の値を== x)の他に...た場合(入力の値が==数)

誰か助けてもらえますか?

Int main() {... int choice; 
    do{ 
    cout <<"choose from the list below to make the convertion"<<endl; 
    cout <<"1 : € to $, 2 :$ to €,3 :$ to £,4: £ to$\n"; 
    cin >>choice; 

      if (choice =='1') {cout << "Pls enter € value to convert to $."<<endl; 

      cin >>value; 

      cout <<"euro\t\t to\t\t dollard\n"; cout <<value<<"\t\t\t\t"<<value*diff<<endl; } 

      else if (choice=='2'){..... 
+1

問題は何ですか?あなたは問題があると言いましたが、あなたはその問題が何であるか説明しませんでした。 –

+0

数字と文字が混乱しています。 – SLaks

+0

まあ問題は、例2または3を入力すると、最初の文if(choice = 1)を実行するときです。 – Mrkinix

答えて

0

ここでの問題は、あなたがリテラル文字(「1」)で、int型の変数(選択肢)を比較していることです。あなたが「1」と比較すると、実際には文字のASCII値と比較されている「1」、だからあなたの問題を解決するために49

である、

if (choice ==1) 

if (choice =='1') 

を置き換えます

+2

誤解を招く恐れがあります。文字リテラルはC++では 'char'型ですが、' char'は整数型です。あなたは確かに 'int'値を' char'変数と比較することができます。問題は論理エラーであり、タイプエラーではありません。 'choice'は整数として読み込まれました。 ( 'choice'を' char'として定義することは別の解決策になります) –

+0

訂正していただきありがとうございます - 私は自分の答えを編集しました。たぶん私は思ったほどC++では良くない... – Sirplentifus

+0

おかげさまで働いてくれてありがとう。 – Mrkinix

関連する問題