Débugger code c++. erreur non trouvée.

Résolu/Fermé
dorian100 Messages postés 161 Date d'inscription dimanche 6 janvier 2008 Statut Membre Dernière intervention 6 août 2010 - 16 juil. 2009 à 21:32
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 16 juil. 2009 à 22:08
Bonjour,

je débute en programmation c++, je viens de terminer un code source, le débuggeur me donne l'erreur suivante:

error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'cout'

le problème c'est que je ne trouve pas mon erreur, svp aidez moi.

#include <iostream>
#include <time.h>
using namespace std;

void main (void)
{
srand ( (int) time(NULL));
int nbjoueur, nbmystere;
int score =0;

do
{
cout << "Entrez une tentative (entre 0 et 500):";
cin >> nbjoueur;
score ++;

if(nbjoueur == nbmystere)
cout << "felicitation ! vous avez trouve le nombre mystere ! "
<< endl
<< " vous avez eu besoin de" << score << "tentative(s)." << endl;

else
{
if ( nbjoueur < nbmystere )
cout << "Plus !" << endl;
else (nbjoueur > nbmystere )
cout << "moins !" << endl;
}

}
while ( nbjoueur != nbmystere );

system("pause");
}
A voir également:

8 réponses

KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
16 juil. 2009 à 21:36
Tu as oublié un ";" ici :
else (nbjoueur > nbmystere )
cout << "moins !" << endl;
À moins que ce ne soit un "if" qui manque...
0
BleuPowaaaa Messages postés 3 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 16 juillet 2009
16 juil. 2009 à 21:37
cout << "felicitation ! vous avez trouve le nombre mystere ! "

Le voilà ton ';' manquant. ^^
0
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
16 juil. 2009 à 21:38
Non, ce n'est pas gênant, son instruction continue à la ligne d'après avec "<<"
0
dorian100 Messages postés 161 Date d'inscription dimanche 6 janvier 2008 Statut Membre Dernière intervention 6 août 2010 3
16 juil. 2009 à 21:39
ok merci, sa marche
0
kuchi007 Messages postés 308 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 3 août 2009 31
16 juil. 2009 à 21:40
if(nbjoueur == nbmystere)
cout << "felicitation ! vous avez trouve le nombre mystere ! "
<< endl
<< " vous avez eu besoin de" << score << "tentative(s)." << endl;


Je ne suis pas accoutumé au C ++ mais d'après la structure globale du prog j'observe un char ";" à la fin de la chaine de caractères suivant le mot réservé "cout" sauf dans le paragraphe que j'ai copié collé.
0
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
16 juil. 2009 à 21:44
Comme je le disais à BleuPowaaaa, ceci n'est pas une erreur.

Ici l'instruction "cout" est écrite sur 3 lignes mais elle est bien terminée par un ";" (après le "endl") donc il n'y a pas de problème ici.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dorian100 Messages postés 161 Date d'inscription dimanche 6 janvier 2008 Statut Membre Dernière intervention 6 août 2010 3
16 juil. 2009 à 21:53
je viens de remodifier mon code source et la la compilation marche mais une fois le programme créé quand je donne une valeur, il me dit plus et moins en même temps, je ne comprend pas:

#include <iostream>
#include <time.h>
using namespace std;

void main (void)
{
srand ( (int) time(NULL));
int nbjoueur;
int nbmystere;
nbmystere = rand () %501;
int score =0;

do
{
cout << "Entrez une tentative (entre 0 et 500):";
cin >> nbjoueur;
score ++;

if(nbjoueur == nbmystere)
cout << "felicitation ! vous avez trouve le nombre mystere ! "
<< endl
<< " vous avez eu besoin de" << score << "tentative(s)." << endl;

else
{
if ( nbjoueur < nbmystere )
cout << "Plus !" << endl;
else (nbjoueur > nbmystere );
cout << "moins !" << endl;
}

}
while ( nbjoueur != nbmystere );

system("pause");
}
0
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
16 juil. 2009 à 21:56
Comme je le disais, ce n'est pas le ";" qui pose problème mais il manque un "if"
else if (nbjoueur > nbmystere) cout << "moins !" << endl;
0
dorian100 Messages postés 161 Date d'inscription dimanche 6 janvier 2008 Statut Membre Dernière intervention 6 août 2010 3
16 juil. 2009 à 22:01
bien vu pour le if, encore merci!

sa veut dire qu'il y a des fautes dans les livres de chez microapp (le guide complet du c++).

le if n'est pas mentioné dans le code source du livre. enfin...

merci encore une fois à tous.
0
kuchi007 Messages postés 308 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 3 août 2009 31
16 juil. 2009 à 22:03
Ouh pas bête je l'ai même pas vu :O
Shame on me !
0
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
16 juil. 2009 à 22:08
C'est une question d'habitude...
"else (nbjoueur > nbmystere ); " aurait été une instruction pour le moins bizarre puisque ça ne fait rien, l'oubli du "if" paraît alors évident puisqu'il y a une condition booléenne en jeu !
0