0

友人と一緒にテキストベースのビデオゲームを作ろうとしていて、プログラミングをどのように行うかを研究しています。ここまでの C++ プログラムは次のとおりです。

#include <iostream>
#include <stdio.h>

char Choice;

using namespace std;

int main()
{
    printf("You wake up to darkness.\n");
    printf("Confused and tired, you walk to the nearest house.\n");
    printf("You notice it's abandoned. What do you do?\n");
    printf("1. Walk Away.\n");
    printf("2. Jump.\n");
    printf("3. Open Door.\n");
    printf("Choose wisely.\n");
    cin >> Choice;

    if(Choice=1)
    {
        printf("The House seems to have a gravital pull on you. How strange.\n");
    }

    else if(Choice=2)
    {
        printf("Having Fun?\n");
    }

    return 0;
}

しかし、ビルドして実行するとすべてが表示されますが、すべての回答は if(Choice=1) 回答になります。プログラムに必要な何かが欠けているか、または部分が互いに矛盾していますか?

4

1 に答える 1

7

==代入演算子ではなく、比較演算子が必要です=。これらは別個の演算子です。を使用=すると の値が変更されますがChoice、これは必要なものではありません。(コンパイラは=ifステートメントでの使用について警告する必要があります。)

1'1'は整数 1 です。異なる文字(ASCII 値 49)に対してチェックする必要があります。'1'の代わりに使用し1ます。

if (Choice == '1')
{
    printf("The House seems to have a gravital pull on you. How strange.\n");
}
else if (Choice == '2')
{
    printf("Having Fun?\n");
}

また、2 種類の I/O を混在させています。入力に使用cinするのは良いことです。coutではなく、対応する出力を使用する必要がありますprintf

cout << "You wake up to darkness." << endl;
cout << "Confused and tired, you walk to the nearest house." << endl;
于 2013-11-23T04:06:56.793 に答える