Void quitter en C
Résolu/Fermé
amine_marc
Messages postés
256
Date d'inscription
dimanche 21 février 2010
Statut
Membre
Dernière intervention
11 avril 2016
-
24 févr. 2012 à 11:54
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 24 févr. 2012 à 13:54
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 24 févr. 2012 à 13:54
A voir également:
- Void quitter en C
- Forcer à quitter windows - Guide
- Void(0); - Forum Windows
- Votre envoi vient de quitter son pays d'expédition - Forum Consommation & Internet
- Comment quitter le mode histoire gta 5 - Forum Xbox One
- Associez chaque situation à l’action la plus appropriée en matière de sécurité informatique : verrouiller la session, quitter la session, ne rien faire ou éteindre l'ordinateur. - Forum MacOS
3 réponses
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
24 févr. 2012 à 12:29
24 févr. 2012 à 12:29
Salut.
Et c'est quoi le problème de cette fonction.
Le principal que je foi c'est passé un char en argument de scanf utilisant %s. Mieu vaut utiliser getc().
tu peux eventuellement rappeler quitter() dans ton dernier else.
Et c'est quoi le problème de cette fonction.
Le principal que je foi c'est passé un char en argument de scanf utilisant %s. Mieu vaut utiliser getc().
tu peux eventuellement rappeler quitter() dans ton dernier else.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
24 févr. 2012 à 12:38
24 févr. 2012 à 12:38
scanf("%s",&rep);
Attention, rep est de type char. Il faut donc plutôt utiliser scanf("%c",&rep) ou plus simplement : rep=getchar(); Et pour vider le '\n' (idéal lorsque tu souhaites réutiliser un scanf) : rep=getchar(); getchar(); (oui deux getchar()).
Ensuite, ton return ne sert à rien.
Attention, rep est de type char. Il faut donc plutôt utiliser scanf("%c",&rep) ou plus simplement : rep=getchar(); Et pour vider le '\n' (idéal lorsque tu souhaites réutiliser un scanf) : rep=getchar(); getchar(); (oui deux getchar()).
Ensuite, ton return ne sert à rien.
amine_marc
Messages postés
256
Date d'inscription
dimanche 21 février 2010
Statut
Membre
Dernière intervention
11 avril 2016
2
24 févr. 2012 à 13:01
24 févr. 2012 à 13:01
merci à vous ts, mais mon problème n'est pas au niveau de lire la réponse de l'utilisateur, mais comment fermer la fenêtre si rep==O .............
Alors, j'ai trouvé la solution c'est exit (0) ca marche b1, voilà donc la fonction correcte:
//---------------------------------------------------------
void Quitter(void)
{
char rep;
system("cls");
printf ("voulez vous vraiment quitter !! (O/N) \n");
scanf("%s",&rep);
if(rep=='o' || rep=='O')
exit(0);
else if(rep=='n' || rep=='N')
menu();
else
{
printf("Veuillez choisir l'option correcte!.. cliquez sur une touche..");
getch();
return;
}
}
//-------------------------------------------------------------
Alors, j'ai trouvé la solution c'est exit (0) ca marche b1, voilà donc la fonction correcte:
//---------------------------------------------------------
void Quitter(void)
{
char rep;
system("cls");
printf ("voulez vous vraiment quitter !! (O/N) \n");
scanf("%s",&rep);
if(rep=='o' || rep=='O')
exit(0);
else if(rep=='n' || rep=='N')
menu();
else
{
printf("Veuillez choisir l'option correcte!.. cliquez sur une touche..");
getch();
return;
}
}
//-------------------------------------------------------------
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
24 févr. 2012 à 13:06
24 févr. 2012 à 13:06
mais mon problème n'est pas au niveau de lire la réponse de l'utilisateur
Beh si justement, ton problème est à ce niveau.
Si tu fais scanf("%s",&rep) alors tu risques (pas forcément) d'avoir des problèmes de récupération de variable. Il s'agit donc bel et bien d'une erreur qui peut expliquer pourquoi ça ne marchait pas dans ton code initial car exit(EXIT_SUCCESS) est correct (à condition d'avoir inclu le header stdlib.h).
Beh si justement, ton problème est à ce niveau.
Si tu fais scanf("%s",&rep) alors tu risques (pas forcément) d'avoir des problèmes de récupération de variable. Il s'agit donc bel et bien d'une erreur qui peut expliquer pourquoi ça ne marchait pas dans ton code initial car exit(EXIT_SUCCESS) est correct (à condition d'avoir inclu le header stdlib.h).
amine_marc
Messages postés
256
Date d'inscription
dimanche 21 février 2010
Statut
Membre
Dernière intervention
11 avril 2016
2
24 févr. 2012 à 13:08
24 févr. 2012 à 13:08
ah bon merci
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
24 févr. 2012 à 13:54
24 févr. 2012 à 13:54
daccrod avec fiddy. exit(EXIT_SUCCESS) est courant. C'est juste une macro qui doit donner 0.