2017-09-19 3 views
0

私はMcDonalds Menuをサイドプロジェクトとしてコーディングしようとしています。文字列とユーザーが入力した内容との比較に問題があります。私は、ユーザーの応答に基づいて特定のメニューを表示し、ユーザーの応答に基づいて正しいメニューを表示できるようにしたいと考えています。現在、私は実行しようとしている関数を呼び出していてもメニューを表示しませんそれ。 if文の配置に何か問題はありますか?今は1つのメニュータイプをテストしていますが、複数で作業しようとしていますが、これから始めることにします。オリジナルは変更されませんので、あなたが地元の一時変数を入力しているGetMenu関数内ので文字列内の特定の単語とC++のif文またはwhile文を比較する最良の方法は何ですか?

#include <iostream> 
#include <iomanip> 
#include <string> 
using namespace std; 

void getMenu(string menuType); 
void breakfastMenu(); 
void lunchMenu(); 
float calculateSubTotal(); 
float calculateTotal(); 

void getMenu(string menuType) 
{ 
    cout << "Which menu would you like to order from today?\n" << end; 
    getline(cin, menuType); 
} 

void breakfastMenu() 
{ 
    cout << "#1 Egg McMuffin Meal" << endl; 
} 

void lunchMenu() 
{ 
    cout << "#1 Big Mac Meal" << endl; 
} 


int main() 
{ 
    string menuType; 

    cout << "Welcome to McDonalds, how may we help you today? " << endl << endl; 

    getMenu(menuType); 

    if(menuType == "breakfast") 
    { 
     breakfastMenu(); 
    } 
} 
+1

元には影響しないように値を渡します。 – Raindrop7

答えて

0

あなたは値によって、文字列MenuTypeを渡しています。

変更GetMenuの署名をする:参照するか、ポインタで渡し、それを修正するには

void getMenu(string&); // the protoype 

// and the function 
void getMenu(string& menuType){ 

} 
  • あなたの代わりに、GetMenuが、それは文字列として選択を返すようにすることです機能します空きだけでなく:

    std::string menuType = getMenu(); // Now it looks logical 
    
+0

'std :: string getMenu()'がおそらく良いでしょう。 –

+0

@ KenY-Nはい、それです。あなたは完全に正義です。しかし、私は彼のミスをOPに説明しました。今度は代わりに文字列を返すようにしました。 – Raindrop7

+0

あなたの回答のおかげでありがとう私はすぐにプログラミングに優れていないので、これは私が私を始めるための大きな助けのためにサイドプロジェクトのおかげでやってみようとしているので、私はおそらく参照渡しとなぜなら、私はまだそれらに混乱しているからです。 –

関連する問題