0

ステートメントを作成しようとしてif elseいますが、コードを入力するたびにエラーが発生します。そのうちの 1 人が言いますがIF was not declared in this scope、それを宣言する方法がわかりません。また}、私のelseステートメントの前には何もないと言っていますが、明らかにあります。助けてください。

コードは次のとおりです。

#include <iostream>
#include <string>

using namespace std;

int main() {
    string UserInput;

    cin >> UserInput;

    int x;
    x = 1;

    If (UserInput = x);
    {
        cout << "Type A Word and Press enter";
    }
    else
    {
        Cout << "NOT A USESBLE NUMBER";
    }

    cin.clear();
    cin.ignore(255, '\n');
    cin.get();

    return 0;
}
4

4 に答える 4

12
If (UserInput = x);

キーワードは、C++ の変数と同様に大文字と小文字が区別されます。つまり、記述するたびに大文字と小文字が区別され、綴られている必要があります。コードでIFは、まだ定義されていない変数または関数として使用しているとコンパイラが判断するため、未宣言/未定義として表示されます。if ステートメントは小文字で記述します。したがって、結果は次のようになります。

if (UserInput = x);

しかし、まだ終わりではありません。ここにはまだいくつかの問題があります。if ステートメントの 1 つの等号は代入として解釈されます (技術的には正しい構文であるため、エラーはスローされませんが、多くの人は 2 つの等号の代わりに 1 つの等号を使用してこの間違いを犯します)。代入ではなく比較する場合、正しい構文は二重等号です。

if (UserInput == x);

注: 文字列を数値と比較しているため、このコードはまだ正しくありません。を実行するcin >> UserInputと、ユーザーのテキストは変数の文字列に変換されるため、数値 1 が割り当てられたUserInputような整数になることはありません。x言い換えれば、これifは文字列が整数ではないという理由で毎回失敗します。代わりにif (UserInput == "1")、文字列リテラルとして 1 と比較するために使用する必要があります。

if (UserInput == "1");

最後のセミコロンはそこにあるべきではありません。これはステートメントの終わりではなく、行の終わりです。if ステートメントには、その後に続く 1 行のコード (角かっこが省略されている場合はオプション)、または複数行のコードを囲む 2 つの中かっこのいずれかが引き続き必要です。

if (UserInput == "1")
{
    /* ... */

    Cout >> "NOT A USESBLE NUMBER";
}

Cout小文字で定義されているため、完全に小文字にする必要があります。

あなたのコードを調べた後、これはあなたが意図したものだと思います:

#include <iostream>
#include <string>

using namespace std;

int main() {
    string UserInput;

    cin >> UserInput;

    if (UserInput == "1") {
        cout << "Type A Word and Press enter";
    }
    else {
        cout << "NOT A USESBLE NUMBER";
    }

    cin.clear();
    cin.ignore(255, '\n');
    cin.get();

    // "return 0" is implicit.
}
于 2012-08-20T00:57:24.197 に答える
7

コードが正しくありません。最初に大文字の I を使用しており、2 番目に行末にセミコロンがあり、3 番目の等号には 2 つの等号があります。

int x;
x=1;
If (UserInput = x);

する必要があります

std::string x("1");
if (UserInput == x)
于 2012-08-20T00:10:29.987 に答える
3

C で小文字にする必要がある場合

于 2012-08-20T00:09:42.220 に答える
0
std::string x='1';
if (UserInput==x)
{
  cout << "Type A Word and Press enter";
} else
{
    cout << "NOT A USESBLE NUMBER";//Cout should be cout
}
于 2012-08-20T00:13:24.463 に答える