18

コンパイルしたいときは、次のようになります。最終行について : erreur:expexted 宣言前 { トークン

コードを変更せずに、変更した中間部分だけを残しました...どうした問題ですか??? ここに私のコードがあります:


#include <iostream>
using namespace std;

int main()
{
  cout << "Pensez a un personnage : Mlle Rose, le Professeur Violet, "
       << "le Colonel Moutarde," << endl
       << "le Reverend Olive ou Mme Leblanc." << endl << endl;

  cout << "Votre personnage a-t-il des moustaches (1 : oui, 0 : non) ? ";
  bool moustaches;
  cin >> moustaches;

  cout << "Votre personnage porte-t-il des lunettes ? ";
  bool lunettes;
  cin >> lunettes;

  cout << "Votre personnage porte-t-il un chapeau ? ";
  bool chapeau;
  cin >> chapeau;

  cout << "Est-ce que votre personnage est un homme ? ";
  bool homme;
  cin >> homme;

  cout << "==> Le personnage auquel vous pensez est ";

  if (chapeau) {
    /*******************************************
     * Completez le programme a partir d'ici.
     *******************************************/
    cout << "le Professeur Violet";

    else if (moustaches) {
        cout << "le Colonel Moutarde";
    }
    else if (not lunettes) {
        cout << "Mlle Rose";
    }
    else if (homme) {
        cout <<"le Révérend Olive";
    }
    else {
        cout <<"Mme Leblanc";
    }

    /*******************************************
     * Ne rien modifier apres cette ligne.
     *******************************************/
  }

  cout << endl;

  return 0;
}


----------
4

4 に答える 4

15
if (chapeau) {

このifステートメントの終了中かっこを忘れたため、後続のステートメントelse ifは構文エラーと見なされます。ifステートメントの本文が完成したら、中括弧を追加する必要があります。

if (chapeau) {
    cout << "le Professeur Violet";
}
else if (moustaches) {
    cout << "le Colonel Moutarde";
}
// ...
于 2013-10-04T21:05:12.413 に答える
1

提案:

  • 一貫した 3 ~ 4 スペースのインデントを使用すると、これらの問題がはるかに簡単になります。
  • {} を縦に並べるブレース スタイルを使用すると、これらの問題がすぐにわかります
  • 常に制御ブロックを別のレベルにインデントする
  • シンタックス ハイライト エディタを使用してください。役に立ちます。後で感謝します

例えば、

type
functionname( arguments )
{
    if (something)
    {
        do stuff
    }
    else
    {
        do other stuff
    }
    switch (value)
    {
        case 'a':
            astuff
            break;
        case 'b':
            bstuff
            //fallthrough //always comment fallthrough as intentional
        case 'c':
            break;
        default: //always consider default, and handle it explicitly
            break;
    }
    while ( the lights are on )
    {
        if ( something happened )
        {
            run around in circles
            if ( you are scared ) //yeah, much more than 3-4 levels of indent are too many!
            {
                scream and shout
            }
        }
    }
    return typevalue; //always return something, you'll thank me later
}
于 2013-10-05T01:18:53.610 に答える
0

}の行の前の " " を cout << endl;最初の の前の行に移動する必要がありますelse

于 2013-10-04T21:07:09.257 に答える