Probleme de compilation

Mc n1c1 Messages postés 13 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 17 décembre 2005 - 26 nov. 2005 à 20:47
Taranael Messages postés 54 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 21 juin 2007 - 27 nov. 2005 à 12:23
Voici mon code :

#include


using namespace std;


int acceuil();
{
cout<<"Bienvenue sur VocaLatin 4eme-5eme";
cout<<"Ce logiciel vous permettra de tester vos connaissances de vocabulaire de 4eme et de 5eme";
cout<<"Voici le premier chiffre : "<<MonNombre = rand()%10<<endl;
}


int traduction();
{
1 == un
2 == deux
3 == trois
4 == quatre
5 == cinq
6 == six
7 == sept
8 == huit
9 == neuf
10 == dix

cout<<"Quelle est sa traduction francais ? :";cin>>traduction;
if traduction == MonNombre;
{
cout<<"Bien joué";
}
else
{
cout<<"Dommage!!";
}
return 0;
}

et voic les erreurs:

6 C:\Dev-Cpp\mes essais\voca latin\essai avec chiffre\main.cpp expected unqualified-id before '{' token
6 C:\Dev-Cpp\mes essais\voca latin\essai avec chiffre\main.cpp expected `,' or `;' before '{' token
13 C:\Dev-Cpp\mes essais\voca latin\essai avec chiffre\main.cpp expected unqualified-id before '{' token
13 C:\Dev-Cpp\mes essais\voca latin\essai avec chiffre\main.cpp expected `,' or `;' before '{' token
C:\Dev-Cpp\mes essais\voca latin\essai avec chiffre\Makefile.win [Build Error] [main.o] Error 1

Comment faire pour enlever ses erreurs ??? Merci

5 réponses

shadow1779 Messages postés 706 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2013
26 nov. 2005 à 21:17
j'ai peur de dire une betise car je ne prog qu'en C mais c'est pas
int tontruc() sans le ; et sinon "1 == un" ca me parrait bizarre en C
en tout cas tu peut pas



en C en gros ca donnerai

char buffer[10];

gets(buffer);

if(buffer == 1)

{

printf("la traduction en francais est un");

}

else if(buffer == 2)

{

....

}.

...



bref tu continue apres, j'pense en C++ ca doit etre pareil,
0
cs_neria Messages postés 319 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 16 février 2009
27 nov. 2005 à 09:29
Je veux pas faire le rabat joie, mais ce programme est ARCHI FAUX !!!! Ne le montre surtout pas à ton prof (si tu en as un) sinon il va avoir une crise cardiaque ! (Ou alors il n'y a pas tout le code ...)

1) int acceuil(); Mais tu es dingue ??? quand on met un point virgule après le nom d'une fonction c'est pour la déclarer or là tu dois la définir (définir son corps). Même remarque pour int traduction();
2) int acceuil() Tu ne retournes rien dans cette fonction.
3) MonNombre il est déclaré où est avec quel type ???? (je suppose que c'est un int vu son utilisation)
4) 1 == un ne veux rien dire en prog, je suppose que ce sont des commentaires donc à encadrer par /* */
5) traduction est déclaré où et avec quel type. (je suppose que c'est une chaîne)
6) if traduction == MonNombre; T'as fumé quoi ce jour là ??? il n'y a pas de parenthèses et ton if fini par un point virgule donc il n'y a pas d'action si la condition est réalisée.
7) MonNombre doit être déclaré en global ou encore mieux passé en paramètre.8) if traduction MonNombre En supposant que traduction est une chaîne et MonNombre un int. On ne peux PAS comparer une chaîne et un int avec un (sinon on compare les pointeurs). Si on suppose que traduction est un objet de type String perso (ou un truc qui lui ressemble) il faudrait que le == soit surchargé avec un int or je ne pense pas que ce soit le cas vu ton niveau de programmation. Dans tout les cas il faudrait les convertir dans le même type pour les comparer !

shadow tu a fait toi aussi des erreurs dans ton code, tu compares un char[] avec un int, c'est pas bien !!!


Voilà, je vais prendre des calmants :) Allez bonne journée à vous.
0
shadow1779 Messages postés 706 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2013
27 nov. 2005 à 11:19
non tu peut tres bien avoir un chiffre , si quand y a le
gets(buffer) la personne met 1 buffer == "1" je sais j'aurai pu mettre
une int, mais j'me suis habitué a toujours faire un buffer qui sert a
tout, et sous vc++ si j'fais scanf("%d",une int); ca merdouille
0
cs_neria Messages postés 319 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 16 février 2009
27 nov. 2005 à 11:41
char buffer[256] ;
gets(buffer) ;
if (buffer == "1")

NE FONCTIONNE PAS !!! Le if va comparer les pointeurs et non le contenu de ceux ci, il faut faire un strcmp pour comparer deux chaines ! Et pour l'histoire du scanf il faut passer l'adresse de la variable int, mais c'est vrai que scanf s'arrête au premier espace ce qui est plus embêtant que le gets.
0

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

Posez votre question
Taranael Messages postés 54 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 21 juin 2007 1
27 nov. 2005 à 12:23
Essais de jouer aux osselets ou au dominos mais oublies le C++ ^^

Faut tout reprendre du début là

L'ordinateur fait toujours ce qu'on lui demande !
Le problème c'est qu'il ne comprend pas ce qu'on lui demande ...
0
Rejoignez-nous