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???????????
A voir également:

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 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
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 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
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 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
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 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
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