Boucle While - printf - scanf - fflush

Boucle While - printf - scanf - fflush - C++ - Programmation

Marsh Posté le 03-04-2003 à 21:42:49    

J'suis sous Linux(mandrake 9.0) et j'ai fait une sorte de menu dans un while(1) (j'precise: langage C).
 
Le probleme c'est que le scanf n'est jamais pris en compte.
 
J'ai beau faire des fflush(stdin), rien a faire!!!
 
Resultat: il n'y a que les printf pris en compte, mais pas les scanf!!!
 
type de prog:
 
while(1)
{
    ...
    printf("choisir menu1? o/n);
    scanf("%c", &choix);
    ...
}

Reply

Marsh Posté le 03-04-2003 à 21:42:49   

Reply

Marsh Posté le 03-04-2003 à 21:57:27    

nartu elxe a écrit :


J'ai beau faire des fflush(stdin), rien a faire!!!


combien de fois faudra t'il dire que fflush(stdin) ne sert strictement à rien, est une énorme aberration, etc... :fou:
 
poste donc un peu plus de code aussi, la on ne peut pas t'aider ! as tu vérifié la valeur de retour de scanf ? (EOF = erreur)


Message édité par Harkonnen le 03-04-2003 à 22:00:48

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 03-04-2003 à 22:30:01    

ta pas oublié un " dans la parenthèse ?

Reply

Marsh Posté le 03-04-2003 à 22:33:46    

gloll a écrit :

ta pas oublié un " dans la parenthèse ?
 


je pense pas, il a du se louper dans le copier/coller puisqu'il a dit que le printf() fonctionnait


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 03-04-2003 à 22:39:41    

Harkonnen a écrit :


combien de fois faudra t'il dire que fflush(stdin) ne sert strictement à rien, est une énorme aberration, etc... :fou:
 
poste donc un peu plus de code aussi, la on ne peut pas t'aider ! as tu vérifié la valeur de retour de scanf ? (EOF = erreur)


 
Nota: rajouté un "\n" dans le printf flush automatiquement la sortie standart (stdout)


Message édité par ToxicAvenger le 03-04-2003 à 22:39:55
Reply

Marsh Posté le 03-04-2003 à 22:40:52    

et un fgets a la place du scanf, ca serait pas mieux ? :sleep:

Reply

Marsh Posté le 03-04-2003 à 22:50:01    

ToxicAvenger a écrit :

et un fgets a la place du scanf, ca serait pas mieux ? :sleep:  

ben scanf est pas forcément faux [:sinclaire]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 03-04-2003 à 22:59:30    

Harkonnen a écrit :

ben scanf est pas forcément faux [:sinclaire]


 
spafo  :sleep:

Reply

Marsh Posté le 03-04-2003 à 23:04:10    

ben ton programme a l'air de marcher :
 

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(void)
  4. {
  5. while(1)
  6. {
  7.    char choix;
  8.    fflush(stdin);
  9.    rewind(stdin);
  10.    printf("choisir menu1? o/n\t" );
  11.    scanf("%c", &choix);
  12.    printf("Vous avez choisi: %c\n", choix);
  13.  
  14. }
  15. return EXIT_SUCCESS;
  16. }


 
je vois pas de problème...
 
Edit: a part que ca sort jamais de la boucle infinie...


Message édité par ToxicAvenger le 03-04-2003 à 23:05:57
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed