Tom's Guide > Forum > Programmation > [C/C++] !! zappage de scanf !!

[C/C++] !! zappage de scanf !!

Forum Programmation : [C/C++] !! zappage de scanf !!

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour à tous, alors voila je commence a apprendre le C/C++. Avec mes connaissances j'ai tenté de faire un jeu de pendu, seulement au début, ca me zappe un scanf qui demande quelle lettre doit être testée. voici mon code

Code :
  1. #include <iostream>
  2. #include <string.h>
  3. long jeu(char* mot);
  4. int main()
  5. {
  6.     char mot[1000];
  7.     printf("\n\n" );
  8.     printf("\t\t********************\n" );
  9.     printf("\t\t*                  *\n" );
  10.     printf("\t\t*  JEU DU PENDU  *\n" );
  11.     printf("\t\t*                  *\n" );
  12.     printf("\t\t********************\n\n" );
  13.     printf("Rentrez le mot a rechercher. " );
  14.     scanf("%s",&mot);
  15.     for(long i=0;i<=40;i++)
  16.     {
  17.         printf("\n" );
  18.     }        // jusque là ca a juste affiché l'écran de présentation et ca a demandé quel était le mot a rechercher.
  19.     jeu(mot);
  20.     return 0;
  21. }
  22. long jeu(char* mot)
  23. {
  24. char lettreATester;
  25. long i=0;
  26. long longueurMot = strlen(mot);
  27. longueurMot--;
  28. printf("\t" );
  29. while(i<=longueurMot)
  30. {
  31.     printf(" _" );
  32.     i++;
  33. }                  // ca affiche un certain nombre de tirets_bas en fonction de la longueur du mot a rechercher.
  34. printf("\n" );
  35. printf("Quelle lettre voulez-vous tester ? " );
  36. scanf("%c",&lettreATester);
  37. }


en fait ca passe le scanf apres "quelle lettre voulez-vous tester ?" et ca termine directement le programme. merci d'avance.

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Ajoute ceci après chaque scanf():

Code :
  1. fflush(stdin);


ça vide le buffer clavier. Je pense que comme tu demande une chaine de caratère, il garde la touche "entrée" en mémoire clavier.

J'ai pas testé, je ne sais pas si c'est ça, mais je ne vois rien d'autre.

Répondre à CRicky

Sans tester c'est ça : erreur classique ;-)

Répondre à rodbeck

j'ai essayé mais ca ne change rien du tout..... je le met a la ligne qui suit le scanf mais ca ne change rien...

tu dis que c'est parceque je demande une chaine de caractere, or je demande un seul caractere d'ou le %c. Il faut pas mettre autre chose dans ce cas ?

Répondre à mousk@IDN

Essaye avec cin et cout :)

Répondre à Shinji62

Il faut effectivement, entre autre, mettre le

Code :
  1. fflush(stdin);


après le premier scanf

Code :
  1. ...
  2. printf("Rentrez le mot a rechercher. " );
  3. scanf("%s",&mot);
  4. fflush(stdin);//-- ici --
  5. for(long i=0;i<=40;i++)
  6. {
  7. ...


En revanche je suis étonné que ton code compile sans erreur alors que le prototype de ta fonction jeu est :

Code :
  1. long jeu(char* mot);


et que ta fonction ne retourne rien ...

Répondre à ataofeal

j'ai essayé en changeant le long par void mais ca ne change rien. Je pense que je vais tout simplement continuer les tutoriaux avant de faire un jeu du pendu =D

Répondre à mousk@IDN
Tom's Guide > Forum > Programmation > [C/C++] !! zappage de scanf !!
Aller à :

Il y a 1374 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens