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.
}