Je bloque sur un truc tout simple en C

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,
je bloque sur un truc tout simple en C
mais je ne me rappelle plus comment le faire

voila mon problème: j'ai un petit programme qui fonctionne parfaitement mais quand j'arrive a la fin
je voudrais afficher une phrase qui demande si l'utilisateur veut recommencer ou quitter

j'ai donc une ligne de code

printf("\t\t "Voulez vous revenir au debut de ce programme? (o/n)");

si il répond 'o' il retourne au début

si il répond 'n' il quitte le programme

qu'est ce que je dois écrire pour que sa fonctionne???????????
Configuration: Windows XP
Firefox 3.0.12

14 réponses

  1. Utilisateur anonyme
     
    en gros ......

    comment je peut comparer une lettre que j'écrit au clavier avec une lettre prédéfinie?????????
    0
  2. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
     
    mettre ton programme dans une boucle, et a la fin tu demandes une confirmation. Selon le résultat que l'utilisateur te donne tu mets une variable à "true", c-à-d si true n'existe pas tu la mets à 1 ou à n'importe quelle valeur non zéro. Sinon, tu mets la valeur à zéro. Pour la boucle principale tu testeras cette valeur.

    Voici uin exemple, je ne suis pas sûr de la syntaxe de getchar() mais c'est juste pour te faire une idée.

    do {
     TON CODE
    
     printf("voulez vous... ?");
     touchetapee=getchar();
    
     if (touchetapee=='o'|| touchetapee=='O') 
        repeter = 1;
      else
        repeter =0;
    
    } while (repeter)
    0
  3. Utilisateur anonyme
     
    le repeter c'est quoi???????
    0
  4. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
     
    pardon, repeter c'est juste un int que tu déclares avant la boucle.

    Cette variable fera 0 ou 1 (false ou true) selon la touche que tu taperas, et c'est elle qui fera que tu fais la boucle ou pas.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    ah ok ok je vais essayer tout ca !!!! ^^
    0
  7. Utilisateur anonyme
     
    oulllla la
    sa fait beaucoup d'erreur tout sa

    comment je dois déclarer ma variable touchetapee?????????????????

    0
  8. Utilisateur anonyme
     
    voila maintenant je n'ai plus d'erreur....

    il me demande "Voulez vous revenir au debut de ce programme? (o/n)"

    mais la je ne peut rien écrire...... il sort de la boucle tout seul
    0
  9. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
     
    oui, il faut que tu demandes une touche à l'utilisateur, je ne fais pas trop de C, plutôt le C++, alors là en détail je ne sais pas comment on fait. Je pensais que la fonction getchar() pouvait le faire... PS : touchetapee est bien un char ?
    0
  10. Utilisateur anonyme
     
    oui oui touchetapee est un char

    mais je comprend pas non plus pourquoi il me demande pas d'entrer une touche
    0
  11. Utilisateur anonyme
     
    j'ai trouvé ceci

    printf("Voulez vous revenir au debut de ce programme? (o/n)");
    scanf("%s",confirmation);

    if(confirmation=='o'|| confirmation=='O');
    goto debut;
    if(confirmation=='n'|| confirmation=='N');
    printf("Appuiez sur Enter pour quitter le programme");
    getch();
    }

    il compile bien mais quand je marque o ou n il me met un message d'erreur

    monpgm.c a rencontré une erreur et doit fermer
    envoyer le rapport d'erreur /// ne pas envoyer

    0
  12. Utilisateur anonyme
     
    bon j'ai trouvé d'ou le message d'erreur venait
    maintentant j'ai ca :

    printf("Voulez vous revenir au debut de ce programme? (o/n)");
    scanf("%s",&confirmation);

    if(confirmation=='o'|| confirmation=='O');
    goto debut;
    if(confirmation!='o'|| confirmation!='O');
    goto end;

    end:
    printf("Appuiez sur Enter pour quitter le programme");
    getch();

    mais peut importe ce que j'écris il revient toujours au début!!!!!!!!!!!!
    0
  13. Utilisateur anonyme
     
    je ne sais pas pourquoi mais c'est le o majuscule qui posait problème!!!!!!!!!!!!

    j'ai enlevé le || confirmation=='O'

    et sa fonctionne parfaitement!!!!
    0
  14. Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
     
    ok alors remplace :
    ( confirmation=='o'|| confirmation=='O')

    par ( (confirmation=='o') || (confirmation=='O') )

    si tu veux permettre à l'utilisateur de taper o même si son "Verr. Maj." est activé, là ça devrait marcher avec les parenthèses en plus ;) .

    bonne continuation, et n'oublie pas de mettre le sujet en "Résolu" !
    0
  15. Utilisateur anonyme
     
    un grand merci

    sa fonctionne parfaitement!!!!!
    0