[ C ] Probléme fgets
lirycs78
Messages postés
106
Statut
Membre
-
[c] -
[c] -
Bonjour,
J'ai un soucis avec fgets que j'ai mis dans mon code, le probléme c'est que quand je lance mon prog, le fgets n'est pas pris en compte, il ne me propose pas d'entrez du texte et le programme s'arréte. merci de m'aider.
Voici le code : http://rafb.net/p/zFpwtc22.html
J'ai un soucis avec fgets que j'ai mis dans mon code, le probléme c'est que quand je lance mon prog, le fgets n'est pas pris en compte, il ne me propose pas d'entrez du texte et le programme s'arréte. merci de m'aider.
Voici le code : http://rafb.net/p/zFpwtc22.html
6 réponses
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...
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
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 ^^.