0

作業中のコードを見ていましたが、約 1 週間かけて取り除こうとした 3 ~ 4 個のエラーがありましたが、どうしてもできません! 私はプログラミングが初めてなので、ばかげた形で答えていただければ、それは素晴らしいことです! これがコードです。

#include <iostream>
#include <string>


using namespace std;

int main() {
    string password;

    int choice;

    cout << "Command Line Multi-Tool" << endl;
    cout << endl;
    cout << "plase enter your password: " << endl;
    cin >> password;
    if (password == "creeper1") {
        cout << endl;
        cout << "Main Menu" << endl;
        cout << "1. Class Schedule" << endl;
        cout << "2. School Info" << endl;
        cout << "3. Exit" << endl;
        cin >> choice;
    }
    else {
        cout << "Incorrect, Access Denied" << endl;
        return(0);
    }

    }

    else (password == "admin1"){
        cout << "/*adminLogin=='1'*/" << endl;
        cout << endl;
        cout << "Menu::Main" << endl;
    }

    return(0);

    }

}

そして、ここにエラーログがあります。

/Users/student/Documents/TO BE FILED/Tuesday/main.cpp:31:0 /Users/student/Documents/TO BE
FILED/Tuesday/main.cpp:31: error: expected unqualified-id before 'else'


/Users/student/Documents/TO BE FILED/Tuesday/main.cpp:36:0 /Users/student/Documents/TO BE
FILED/Tuesday/main.cpp:36: error: expected unqualified-id before 'return'


/Users/student/Documents/TO BE FILED/Tuesday/main.cpp:36:0 /Users/student/Documents/TO BE
FILED/Tuesday/main.cpp:36: error: expected declaration before '}' token

またよろしくお願いします!

4

4 に答える 4

4

あなたのコードには 1つかif2 つelseのブランスがあります。どちらが欲しいかを決めて、もう一方を失います。おそらく必要なコードを見る

 if (password == "creeper1") {
    cout << endl;
    cout << "Main Menu" << endl;
    cout << "1. Class Schedule" << endl;
    cout << "2. School Info" << endl;
    cout << "3. Exit" << endl;
    cin >> choice;
 } else if (password == "admin1")
    // Your processing code here
 }  else {
    cout << "Incorrect, Access Denied" << endl;
    return(0);
 }
于 2012-12-01T13:18:33.343 に答える
2

アンバランスelse、つまり対応するなしif

おそらく、次のようなものが必要でした:

if (password == "creeper1") {
}
else if (password == "admin1") {
}
else {
}
于 2012-12-01T13:18:31.483 に答える
0

elseの後にそのブロックが実行されない場合は、elseを使用できません。また、正しい構文はreturn(0)ではなくreturn0です。
余分な中括弧も含めますが、ブロックが終了および開始するときに表示される正しい方法でコードをインデントすると、余分な中括弧を追加するなどの間違いを犯すことはめったにありません。

#include <iostream>
#include <string>


using namespace std;

int main()
{
    string password;

    int choice;



    cout << "Command Line Multi-Tool" << endl;
    cout << endl;
    cout << "plase enter your password: " << endl;
    cin >> password;
    if (password == "creeper1")
    {
        cout << endl;
        cout << "Main Menu" << endl;
        cout << "1. Class Schedule" << endl;
        cout << "2. School Info" << endl;
        cout << "3. Exit" << endl;
        cin >> choice;
    }
    else if(password == "admin1")
    {
        cout << "/*adminLogin=='1'*/" << endl;
        cout << endl;
        cout << "Menu::Main" << endl;
    }
    else
    {
        cout << "Incorrect, Access Denied" << endl;
        return 0;
    }
    return 0;
}

これは、すべての構文エラーが修正されたコードです。セマンティクスについては、機能するかどうかはわかりませんが、コンパイルして実行し、コードをテストできます。

于 2012-12-01T13:22:36.377 に答える
0

else は判断を構成できないため、正しい使用法は次のようになります。

if(パスワード == "クリーパー1"){

} そうでなければ (パスワード == "admin1"){

} そうしないと{

}

于 2012-12-01T13:29:21.350 に答える