-1
#include <iostream> //include header files

using namespace std;

int main () //start of main body

{

int num; //declaring integer

int control=1; //declaring integer

while(control==1)//start of loop, as long as condition is true
{
    cout << "Press 1 for coffee" << endl; //writes to standard o/p
    cout << "Press 2 for tea" << endl;
    cout << "Press 3 for hot chocolate" << endl;
    cout << "Press 4 for soft drink" << endl;
    cout << "Press 5 to exit" << endl;
    cin >> num;


if (num == 1) //code to execute if integer = 1
{
    cout << "coffee selected" << endl;
}
else if (num == 2) //code to execute integer = 2
{
    cout << "tea selected" << endl;
}
else if (num == 3) //code to execute if integer = 3
{
    cout << "hot chocolate selected" << endl;
}
else if (num == 4) //code to execute if integer = 4
{
    cout << "soft drink selected" << endl;
}
else if (num == 5) //code to execute if integer = 5
{
    cout << "Exit Program" << endl;
    control=0;
}


}

}

here is my ammended code this works. However i was unsure about initializing the num integer so i left it out but the code still executes and works correctly.

4

6 に答える 6

3

intエラーは、 ( num) を などの文字列リテラルと比較していることです"1"。この特定の文字列リテラルの型const char[2]は に減衰するconst char*ため、コンパイラ エラーが発生します。

たとえば、数値と数値を比較する必要があります

if (num == 1) { .... }
于 2013-03-24T17:11:59.237 に答える
2

ここで整数と文字列を比較していますnum == "1"。代わりに、num == 1

于 2013-03-24T17:11:48.013 に答える
2

数値を文字列リテラルと比較しようとしています。良い計画ではありません。試す

if(num==1)

いいえ

if(num=="1")

第二に、num未定義です。値を設定してみてください。

C++ コンパイラでは、2 つの異なるデータ型を比較できないため、エラーが発生します。比較について詳しくはこちら

于 2013-03-24T17:12:20.160 に答える
2

ユーザーに整数の入力を求めているので、型でmenuある必要はありません。string単に使用する

if (num == 1) 

いいえ

if (num == "1")
于 2013-03-24T17:12:20.970 に答える
1

整数が文字列と比較されています:)

num == "1"

許可されていません。ところで、「num」の代わりに「menu」を意図していると思いますが、これは文字列ですか?

于 2013-03-24T17:12:58.043 に答える
1

まず、あなたの num は初期化されていません。これを変更するときは、比較も変更num == "1" し ますnum == 1

現在、入力をmenu変数に入れてgetline (cin, menu, '\n');いるので、入力を に保存する場合は、これを変更する必要がありますnum

これは非常に素晴らしいコードであることに加えて、私は 4 を選択します)

于 2013-03-24T17:15:11.497 に答える