Quitter le programme lorsque je presse touche
tomy2904
-
Doctor C Messages postés 627 Date d'inscription Statut Membre Dernière intervention -
Doctor C Messages postés 627 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voila, j'aimerais savoir quel code utiliser pour pouvoir quitter le programme si l'utilisateur presse une touche de son clavier.
En fait, j'ai créé un petit menu :
1.Jouer
2.Quitter
Et j'aimerais que le programme se ferme en mettant une phrase avant (par exemple) lorsque l'utilisateur presse la touche 2 (par exemple)
Un grand merci pour votre aide !!! :D
Voila, j'aimerais savoir quel code utiliser pour pouvoir quitter le programme si l'utilisateur presse une touche de son clavier.
En fait, j'ai créé un petit menu :
1.Jouer
2.Quitter
Et j'aimerais que le programme se ferme en mettant une phrase avant (par exemple) lorsque l'utilisateur presse la touche 2 (par exemple)
Un grand merci pour votre aide !!! :D
A voir également:
- Touche exit clavier
- Télécharger clavier arabe - Télécharger - Divers Web & Internet
- Touche inser clavier - Guide
- Touche remanente windows - Guide
- Comment taper / sur clavier - Guide
- Touche verrouillage clavier - Guide
6 réponses
Voila, je viens de tester ta derniere proposition..
Lorsque je choisi la 2ieme proposition càd "Quitter", le programme ne m'affiche pas le "printf" :S Il passe directement a la suite càd à la sortie du programme donc "press any key..."
VOila comment ce presente mon programme avec le menu et ma selection :
--------------------------------------------------------------------------------------------
(1) : Jouer
(2) : Regles du jeu
(3) : Quitter
Que voulez-vous faire ? 3
Process returned 4207747 (0x403483) execution time : 1.963 s
Press any key to continue.
-------------------------------------------------------------------------------------------
--> Il n'y a pas la demande avant de quitter.. Je suppose donc qu'il ne tient pas compte du "case 3" (dans ce cas-ci) :/
Lorsque je choisi la 2ieme proposition càd "Quitter", le programme ne m'affiche pas le "printf" :S Il passe directement a la suite càd à la sortie du programme donc "press any key..."
VOila comment ce presente mon programme avec le menu et ma selection :
--------------------------------------------------------------------------------------------
(1) : Jouer
(2) : Regles du jeu
(3) : Quitter
Que voulez-vous faire ? 3
Process returned 4207747 (0x403483) execution time : 1.963 s
Press any key to continue.
-------------------------------------------------------------------------------------------
--> Il n'y a pas la demande avant de quitter.. Je suppose donc qu'il ne tient pas compte du "case 3" (dans ce cas-ci) :/
Je suppose que tu programmes en C?
Tu peux faire une condition où si l'utilisateur appuie sur 2, tu affiches une phrase du genre 'Voulez-vous vraiment quitter le programme? (o/n)'.
Ensuite, tu fais un scanf pour obtenir ce que l'utilisateur choisi (oui ou non) et s'il tape 'o', tu fais le code suivant:
Tu peux faire une condition où si l'utilisateur appuie sur 2, tu affiches une phrase du genre 'Voulez-vous vraiment quitter le programme? (o/n)'.
Ensuite, tu fais un scanf pour obtenir ce que l'utilisateur choisi (oui ou non) et s'il tape 'o', tu fais le code suivant:
exit(EXIT_SUCCESS);
Ok merci bcp ! :D
Voila ce que j'ai fait pour le case2 :
printf ("Voulez-vous vraiment quitter? Oui(O)/Non(N)");
scanf ("%s", &lettre); //variable etant déclarée plus au : ' char lettre; '
if (lettre=='O')
{
exit(EXIT_SUCCESS);
}
else
{
//Comment revenir au tout debut du programme pour réafficher le menu??
}
Est-ce correct? Et pourrais-tu m'indiquer ce que je pourrais mettre dans le "else" pour pouvoir revenir a mon menu (faire la boucle quoi)?
De plus, j'ai essayé ta fonction : exit (EXIT_SUCCES);
mais lorsque je compile, je me retrouve avec des messages d'erreurs :
- "warning: incompatible implicit declaration of built-in function 'exit' "
- "error : 'EXIT_SUCCES' undeclared (first use in function)
- ...
Merci pour tes infos et pour ton aide bien sur !! ;)
Voila ce que j'ai fait pour le case2 :
printf ("Voulez-vous vraiment quitter? Oui(O)/Non(N)");
scanf ("%s", &lettre); //variable etant déclarée plus au : ' char lettre; '
if (lettre=='O')
{
exit(EXIT_SUCCESS);
}
else
{
//Comment revenir au tout debut du programme pour réafficher le menu??
}
Est-ce correct? Et pourrais-tu m'indiquer ce que je pourrais mettre dans le "else" pour pouvoir revenir a mon menu (faire la boucle quoi)?
De plus, j'ai essayé ta fonction : exit (EXIT_SUCCES);
mais lorsque je compile, je me retrouve avec des messages d'erreurs :
- "warning: incompatible implicit declaration of built-in function 'exit' "
- "error : 'EXIT_SUCCES' undeclared (first use in function)
- ...
Merci pour tes infos et pour ton aide bien sur !! ;)
Pour la constante EXIT_SUCCESS, il faut peut-être faire un import, je me souviens plus. Mais tu peux le remplacer par un 0, ça va faire la même chose.
Sinon, pour le menu, tu peux le mettre dans une boucle de ce genre:
Si tu ne veux pas poser de question avant de quitter le programme, tu pourrais remplacer la dernière ligne par :
exit(0);
Sinon, pour le menu, tu peux le mettre dans une boucle de ce genre:
do { printf("1. Jouer"); printf("2. Quitter"); scanf("%d",&choix); switch(choix) { case 1: // le code du jeu break; case 2: printf ("Voulez-vous vraiment quitter? Oui(O)/Non(N)"); scanf ("%s", &lettre); if (lettre=='O') { exit(0); } break; } }while(true);
Si tu ne veux pas poser de question avant de quitter le programme, tu pourrais remplacer la dernière ligne par :
while(choix!=2);
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Peut-être que ta valeur de choix n'est pas la bonne.
Ajoute un 'case default' à ton switch afin de vérifier si ta variable choix a la bonne valeur d'assignée : https://www.commentcamarche.net/contents/111-langage-c-les-structures-conditionnelles
Si le switch va dans le défault, c'est que la valeur de ta variable choix n'est ni 1, ni 2, ni 3, ce qui pourrait être ton problème.
Ajoute un 'case default' à ton switch afin de vérifier si ta variable choix a la bonne valeur d'assignée : https://www.commentcamarche.net/contents/111-langage-c-les-structures-conditionnelles
Si le switch va dans le défault, c'est que la valeur de ta variable choix n'est ni 1, ni 2, ni 3, ce qui pourrait être ton problème.
Bonjour,
Je m'incruste dans la conversation.
L'erreur vient du code.
lettre est un char, il faut donc mettre scanf("%c",&lettre); ou plus simplement lettre=getchar();
Mais il ne faut pas oublier de vider le buffer clavier qui contiendra le caractère '\n' (touche entrée) à la suite du précédent scanf.
Pour le vider, tu peux utiliser getchar() tout simplement (ou plus proprement avec une boucle while).
En conclusion, remplace scanf("%s",&lettre); par :
Cdlt,
Google is your friend
Je m'incruste dans la conversation.
L'erreur vient du code.
char lettre; scanf ("%s", &lettre);
lettre est un char, il faut donc mettre scanf("%c",&lettre); ou plus simplement lettre=getchar();
Mais il ne faut pas oublier de vider le buffer clavier qui contiendra le caractère '\n' (touche entrée) à la suite du précédent scanf.
Pour le vider, tu peux utiliser getchar() tout simplement (ou plus proprement avec une boucle while).
En conclusion, remplace scanf("%s",&lettre); par :
getchar(); lettre=getchar();
Cdlt,
Google is your friend