Forum Clubic

[C++] Question de debutant

Un ami à moi ma preté un livre de programmation C++ de la gamme “Micro Application”.
J’ai installé le logiciel Dev C++ pour ecrire le programme…
donc voila ce que je dois taper

 1   #include <iostream.h>
 2   // Programme principal
 3   void main (void)
 4   {
 5   cout << "CISEAUX - PIERRE - FEUILLE - PUITS\n";
 6   }
 7   #include <iostream.h>
 8   #include <conio.h>
 9   #include <stdlib.h>
 10   // Programme princpal
 11   void main (void)
 12   {
 13   unsigned int machine, joueur;
 14   {
 15
 16   cout << "VOTRE CHOIX\n";
 17   cout << "1 ... Ciseaux\n";
 18   cout << "2 ... Pierre\n";
 19   cout << "3 ... Feuille\n";
 20   cout << "4 ... Puits\n";
 21   cout << "Sélection de l'option : ";
 22   cin >> joueur;
 23   }
 24   {
 25   randomize ( );
 26   machine=random(4);
 27   if ( machine==0 ) machine=4;
 28   }
 29   { cout <<"Votre choix : \n";
 30   switch (joueur) {
 31
 32   case 1:cout<<"Ciseaux\n"; break;
 33   case 2:cout<<"Pierre\n"; break;
 34   case 3:cout<<"Feuille\n"; break;
 35   case 4:cout<<"Puits\n"; break; }
 36   cout<<"Choix de l'ordinateur : \n";
 37   switch(machine) {
 38
 39   case 1:cout<<"Ciseaux\n"; break;
 40   case 2:cout<<"Pierre\n"; break;
 41   case 3:cout<<"Feuille\n"; break;
 42   case 4:cout<<"Puits\n"; break;}
 43   }
 44   }

et en compilant ( ce qui est demandé ) j’ai 4 erreurs

e:\cpfp2.cpp: In function `int main(...)':
e:\cpfp2.cpp:12: redefinition of `int main(...)'
e:\cpfp2.cpp:4: `int main(...)' previously defined here
e:\cpfp2.cpp: In function `int main(...)':
e:\cpfp2.cpp:25: implicit declaration of function `int randomize(...)'
e:\cpfp2.cpp:26: implicit declaration of function `int random(...)'


Quelqu’un d’assez sympa pourrais m’expliquer pourquoi j’ai c’est erreurs ? alors que jai recopier ce qui est ecrit dans le livre :??:

c’est toi qui a pondu ce code ? :heink:

1ere erreur, tu as 2 fonction main

j’ai changé le deuxieme main

void main2 (void) et je passe de 4 erreurs à 2
ensuite j’ai mis “int” devant randomize et j’ai plus que 1erreur mais je la comrpend pas celle la

e:\cpfp2.cpp: In function `void main2()':
e:\cpfp2.cpp:26: implicit declaration of function `int random(...)'

Tu devrais avoir des explications avec ton livre.

La fonction ‘main’ est la fonction ‘principale’ d’un programme en C, C++ il ne peut y en avoir qu’une.
Ensuite DevC++ n’aime pas “void main(…)” il demande à ce que la fonction main retourne une valeur de type entier, donc “int main(…) { … return 0;}”

De plus, la fonction random appartient à un groupe de fonctions déclarées dans un fichier. Il faut inclure ce fichier comme tu le fais pour iostream.h au début de ton programme.

Quoiqu’il en soit, ta première fonction main et ce qui la précède ne sert à rien ici.

#include <iostream.h>
8   #include <conio.h>
9   #include <stdlib.h>
10   // Programme princpal
11   int main (void)
12   {
cout << "CISEAUX - PIERRE - FEUILLE - PUITS\n";

13   unsigned int machine, joueur;
14   
15
16   cout << "VOTRE CHOIX\n";
17   cout << "1 ... Ciseaux\n";
18   cout << "2 ... Pierre\n";
19   cout << "3 ... Feuille\n";
20   cout << "4 ... Puits\n";
21   cout << "Sélection de l'option : ";
22   cin >> joueur;
23   
24   
25   randomize ( );
26   machine=random(4);
27   if ( machine==0 ) machine=4;
28   
29    cout <<"Votre choix : \n";
30   switch (joueur) {
31
32   case 1:cout<<"Ciseaux\n"; break;
33   case 2:cout<<"Pierre\n"; break;
34   case 3:cout<<"Feuille\n"; break;
35   case 4:cout<<"Puits\n"; break; }
36   cout<<"Choix de l'ordinateur : \n";
37   switch(machine) {
38
39   case 1:cout<<"Ciseaux\n"; break;
40   case 2:cout<<"Pierre\n"; break;
41   case 3:cout<<"Feuille\n"; break;
42   case 4:cout<<"Puits\n"; break;}
43   }
return 0;
44   }

Alors j’ai tout refais en tenant compte de ce que tu as dit, jai en plus rajoute l’include math.h ( ne trouvant pas random.h )
sa me donne ceci:

   #include <iostream.h>
   #include <conio.h>
   #include <stdlib.h>
   #include <math.h>
   // Programme princpal
  int main (void)
   {
cout << "Mon premier programme:\n";   
cout << "CISEAUX - PIERRE - FEUILLE - PUITS\n";

   unsigned int machine, joueur;


   cout << "VOTRE CHOIX\n";
   cout << "1 ... Ciseaux\n";
   cout << "2 ... Pierre\n";
   cout << "3 ... Feuille\n";
   cout << "4 ... Puits\n";
   cout << "Sélection de l'option : ";
   cin >> joueur;


   int randomize ( );
   if ( machine==0 ) machine=4;

    cout <<"Votre choix : \n";
   switch (joueur) {

   case 1:cout<<"Ciseaux\n"; break;
   case 2:cout<<"Pierre\n"; break;
   case 3:cout<<"Feuille\n"; break;
   case 4:cout<<"Puits\n"; break; }
   cout<<"Choix de l'ordinateur : \n";
   switch(machine) {

   case 1:cout<<"Ciseaux\n"; break;
   case 2:cout<<"Pierre\n"; break;
   case 3:cout<<"Feuille\n"; break;
   case 4:cout<<"Puits\n"; break;}

   return 0;
   }

Sa le lance, je tape un chiffre, entrée et sa me ferme la fenetre…donc sa marche bien pour le moment :slight_smile: ( enfin je suppose )

Merci oxyfrance

Si cela ferme ta fenêtre, je suppose que tu es sous Windows. Tu peux donc utiliser un subterfuge pour conserver un temps l’état de la console en faisant : cin.getline(…) ou un getch() voir system(“PAUSE”).

Ou puisque c’est du c++ cin.get(). Encore mieux, tu ouvres l’invite de commande et tu l’exécutes à partir de celle-ci.