Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4778 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  pb avec fgets

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pb avec fgets

n°301371
thenutskil​ler
1+1=3
Posté le 04-02-2003 à 21:26:26  profilanswer
 

Voilà mon programme:

Code :
  1. do{
  2. printf("> " );
  3. fgets(buffer,200,stdin);
  4. ...traitement
  5. }while(strcmp(buffer,"quitter" )!=0);


 
Le problème est que la boucle est executée une fois avant que je puisse saisir qque chose. J'obtiens deux '>' avant la demande de saisie...

mood
Publicité
Posté le 04-02-2003 à 21:26:26  profilanswer
 

n°301375
Taz
bisounours-codeur
Posté le 04-02-2003 à 21:29:59  profilanswer
 

ché po. fait un fflush(stdout) apres ton rpintf

n°301377
thenutskil​ler
1+1=3
Posté le 04-02-2003 à 21:31:54  profilanswer
 

ça ne change rien...

n°301382
Taz
bisounours-codeur
Posté le 04-02-2003 à 21:35:59  profilanswer
 

ben chez moi ça fonctionne tres bien, sauf la comparaison ( à toi de trouver pourquoi) et la sortie (il serait prudent de regarder le code fgets histoire de détecter EOF ou un autre problème (ben ouais, on quitte un shelle en tapant CTRl-D, alors)

n°301388
thenutskil​ler
1+1=3
Posté le 04-02-2003 à 21:37:57  profilanswer
 

C'est quoi le pb de la comparaison: le \0\n ?

n°301390
Taz
bisounours-codeur
Posté le 04-02-2003 à 21:39:37  profilanswer
 

:heink:  
 
si tu regardes, la chaine se termine toujours pas un '\n'

n°301394
thenutskil​ler
1+1=3
Posté le 04-02-2003 à 21:41:30  profilanswer
 

Désolé, je ne voit pas ce que tu veux dire...

n°301398
Taz
bisounours-codeur
Posté le 04-02-2003 à 21:43:41  profilanswer
 

ben fais des printf de ce que l'utilisateur à saisie, et si y a pas de dépassement de buffer, la chiane se termine aps un '\n' et bien evidemment "quitter"!="quitter\n"

n°301401
thenutskil​ler
1+1=3
Posté le 04-02-2003 à 21:45:24  profilanswer
 

Si je fais un printf, je ne verrais pas les \n...
Et toujours est-il que le prog m'affiche 2 fois >

n°301406
Taz
bisounours-codeur
Posté le 04-02-2003 à 21:50:01  profilanswer
 

bien sur que le '\n' s'affiche, et si le '>' s'affiche 2 fois, c'est que tu demande de l'afficher 2 fois, point final.

mood
Publicité
Posté le 04-02-2003 à 21:50:01  profilanswer
 

n°301409
thenutskil​ler
1+1=3
Posté le 04-02-2003 à 21:53:10  profilanswer
 

Tu vois bien que je ne demande pas le ">" 2 fois. Je crois qu'il y a un problème de flush sur l'entrée standard.
Par contre, que je metter quitter avec ou sans le \n, cela ne change rien au test.

n°301410
Taz
bisounours-codeur
Posté le 04-02-2003 à 21:54:53  profilanswer
 

ecoute je sais pas ce que tu branles, j'ai tester le code meme que tu me donnes, et il fonctionne parfaitement. ce post aurait du se terminer y a longtemps

n°301415
thenutskil​ler
1+1=3
Posté le 04-02-2003 à 21:58:03  profilanswer
 

ça doit varier d'un système à l'autre et des opérations effectuées dans le programme avant... tant pis.

n°301421
Taz
bisounours-codeur
Posté le 04-02-2003 à 22:01:58  profilanswer
 

te fous pas de ma gueule

Code :
  1. #include <stdio.h>
  2. #include <string.h>
  3. int main()
  4. {
  5.   char buffer[80];
  6.   do{
  7.     printf("> " );
  8.   }while(fgets(buffer, sizeof buffer, stdin)!=NULL && strcmp(buffer, "quitter\n" )!=0);
  9.   return 0;
  10. }

et ouvre tes yeux bordel

n°301430
thenutskil​ler
1+1=3
Posté le 04-02-2003 à 22:08:44  profilanswer
 

Merci.
Désolé, je suis fatigué ce soir...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  pb avec fgets

 

Sujets relatifs
[C] - fichiers et fgets (lire directement une ligne plus loins ....)[C/C++ sous UNIX] problème de buffer avec fgets et cin !
Questions sur fgets[C] != entre fgets() et scanf()
[C] comment "masquer" un scanf ou un fgets ?[C] question temporisé un fgets
pb de fgets[C] probleme de fgets()
Plus de sujets relatifs à : pb avec fgets


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)