Je bloque sur un truc tout simple en C

Résolu/Fermé
Utilisateur anonyme - 11 nov. 2009 à 09:04
 Utilisateur anonyme - 11 nov. 2009 à 11:35
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???????????

14 réponses

Utilisateur anonyme
11 nov. 2009 à 09:37
en gros ......

comment je peut comparer une lettre que j'écrit au clavier avec une lettre prédéfinie?????????
0
Pacorabanix Messages postés 3245 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 658
11 nov. 2009 à 09:38
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
Utilisateur anonyme
11 nov. 2009 à 09:42
le repeter c'est quoi???????
0
Pacorabanix Messages postés 3245 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 658
11 nov. 2009 à 09:43
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

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

Posez votre question
Utilisateur anonyme
11 nov. 2009 à 09:46
ah ok ok je vais essayer tout ca !!!! ^^
0
Utilisateur anonyme
11 nov. 2009 à 09:51
oulllla la
sa fait beaucoup d'erreur tout sa

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

0
Utilisateur anonyme
11 nov. 2009 à 09:59
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
Pacorabanix Messages postés 3245 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 658
11 nov. 2009 à 10:02
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
Utilisateur anonyme
11 nov. 2009 à 10:03
oui oui touchetapee est un char

mais je comprend pas non plus pourquoi il me demande pas d'entrer une touche
0
Utilisateur anonyme
11 nov. 2009 à 10:12
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
Utilisateur anonyme
11 nov. 2009 à 10:19
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
Utilisateur anonyme
11 nov. 2009 à 10:44
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
Pacorabanix Messages postés 3245 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 658
11 nov. 2009 à 11:31
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
Utilisateur anonyme
11 nov. 2009 à 11:35
un grand merci

sa fonctionne parfaitement!!!!!
0