[ C ] Probléme fgets
Fermé
lirycs78
Messages postés
103
Date d'inscription
vendredi 7 juillet 2006
Statut
Membre
Dernière intervention
7 janvier 2010
-
20 mars 2009 à 19:58
[c] - 10 juin 2010 à 00:01
[c] - 10 juin 2010 à 00:01
A voir également:
- [ C ] Probléme fgets
- Popen fgets ✓ - Forum C++
- Fgets fscanf ✓ - Forum C
- Fgets langage c ✓ - Forum C
- [C] - Probleme de fgets dans boucle ! ✓ - Forum C
- Fgets \n ✓ - Forum C
6 réponses
lirycs78
Messages postés
103
Date d'inscription
vendredi 7 juillet 2006
Statut
Membre
Dernière intervention
7 janvier 2010
1
20 mars 2009 à 20:32
20 mars 2009 à 20:32
help
sebshiva
Messages postés
194
Date d'inscription
lundi 16 mars 2009
Statut
Membre
Dernière intervention
17 juin 2010
10
20 mars 2009 à 20:32
20 mars 2009 à 20:32
Salut,
ça remonte à loin pour moi le C...
Mais je te donne une idée qui vaut ce qu'elle vaut...
essaie de remplacer
fgets(buffer,sizeof(buffer),stdin);
par
fgets(buffer,sizeof buffer,stdin);
...
Les parenthèses...
Tiens moi au jus, ça attise ma curiosité...
Faut que je m'y remette au C... des que j'aurais le temps...
ça remonte à loin pour moi le C...
Mais je te donne une idée qui vaut ce qu'elle vaut...
essaie de remplacer
fgets(buffer,sizeof(buffer),stdin);
par
fgets(buffer,sizeof buffer,stdin);
...
Les parenthèses...
Tiens moi au jus, ça attise ma curiosité...
Faut que je m'y remette au C... des que j'aurais le temps...
lirycs78
Messages postés
103
Date d'inscription
vendredi 7 juillet 2006
Statut
Membre
Dernière intervention
7 janvier 2010
1
20 mars 2009 à 20:38
20 mars 2009 à 20:38
Sa change rien :/
sebshiva
Messages postés
194
Date d'inscription
lundi 16 mars 2009
Statut
Membre
Dernière intervention
17 juin 2010
10
20 mars 2009 à 20:41
20 mars 2009 à 20:41
Bon, sinon, essaie
fgets(stdin);
avant le fgets en question...
fgets(stdin);
avant le fgets en question...
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 567
20 mars 2009 à 20:59
20 mars 2009 à 20:59
Salut,
Essaie
Essaie
#include <stdio.h>
#include <stdlib.h>
int menu ();
int main()
{
char buffer[200];
int choix;
puts("System T00l");
puts("Version 1.0 Code by Hel0ck");
while((choix=menu())){
switch(choix){
case 1:
printf("Lister Repertoire\n");
fgets(buffer,sizeof(buffer),stdin);
printf("buffer : %s\n",buffer);
//system(buffer);
break;
case 2:
puts("Creer Repertoire");
break;
case 3:
puts("Supprimer fichier");
break;
case 4:
puts("Changer de repertoire");
break;
case 5:
exit(0);
default:
return -1;
}
}
return 0;
}
int menu (){
int choix;
puts("[1] Lister repertoire");
puts("[2] Creer repertoire");
puts("[3] Supprimer fichier");
puts("[4] Changer de repertoire");
puts("[5] Quitter");
printf("Choix? ");
scanf("%d",&choix);
getchar();
return choix;
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 817
20 mars 2009 à 23:45
20 mars 2009 à 23:45
Salut,
Normal, lors de ton scanf("%d") dans ta fonction menu(), il y a un '\n' qui va se loger dans le buffer. C'est à cause de ça, que tu as l'impression que ton fgets() ne fait rien. Il faut donc vider le buffer clavier après ton scanf("%d",...) par :
Ou tout simplement getchar() comme te l'a suggéré lami20j si l'utilisateur n'est pas un farceur ^^.
Normal, lors de ton scanf("%d") dans ta fonction menu(), il y a un '\n' qui va se loger dans le buffer. C'est à cause de ça, que tu as l'impression que ton fgets() ne fait rien. Il faut donc vider le buffer clavier après ton scanf("%d",...) par :
while(getchar()!='\n');
Ou tout simplement getchar() comme te l'a suggéré lami20j si l'utilisateur n'est pas un farceur ^^.