[C] fonction gets() qui ne s'exécute pas dans un switch()

fonction gets() qui ne s'exécute pas dans un switch() [C] - Programmation

Marsh Posté le 20-07-2002 à 15:40:38    

J'ai un petit pb, sur le code suivant j'ai la deuxième fct gets() qui ne marche pas: elle ne s'exécute pas.
voici le code:
 
 
 
include <stdio.h>
#include <conio.c>
#include <string.h>
 
#define len_max 200    //longueur max d'une phrase saisie
 
 
 
 
int main()
{
  char phrase[len_max];                   //phrase saisie par l'utilisateur
  int nCHOIX;                            //choix du menu  (ASCII)
  int display_menu();                   //affichage du menu
  void caracteristiques();             //caractéristiques d'une chaine
 
  gets(phrase);   // CELLE CI S'EXECUTE
 
 
  nCHOIX = display_menu();
  if(nCHOIX != 48)
  {
    clrscr();
    printf("Tapez votre phrase suivie de ENTREE : " );
    gets(phrase);  /CELLE CI, NON (JE RENTRE BIEN DANS LE IF)
 
    switch(nCHOIX)
    {
     case 49: caracteristiques(phrase);
    }
  }
  else return 0;
}
 
 
 
Comprenez vous pourquoi ?
Merci  :hello:


Message édité par bouteilledo le 20-07-2002 à 15:41:25
Reply

Marsh Posté le 20-07-2002 à 15:40:38   

Reply

Marsh Posté le 20-07-2002 à 16:34:47    

probablement un problème de buffer en entrée, comme tu l'évoques sur l'autre topic :
 
http://forum.hardware.fr/forum2.php3?post=23336&cat=10
 
 
(pas besoin de faire plusieurs topics ;)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 20-07-2002 à 17:46:01    

désolé pour avoir fais 2 topic, j'aurrai du rennomer l'autre :)
je recomencerai plus promis  :D  
 
Sinon ct bien ça le probleme, j'avais un caractère \n en mémoire. Il m'a fallut longtemps pour comprendre mais c'est bien rentré.
 
A part ca, connaitrais tu une fonction qui renverrait la taille du buffer stdin ?
Merci encore.

Reply

Marsh Posté le 20-07-2002 à 18:05:13    

ça j'en ai aucune idée...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 20-07-2002 à 18:35:48    

bouteilledo a écrit a écrit :

désolé pour avoir fais 2 topic, j'aurrai du rennomer l'autre :)
je recomencerai plus promis  :D  
 
Sinon ct bien ça le probleme, j'avais un caractère \n en mémoire. Il m'a fallut longtemps pour comprendre mais c'est bien rentré.
 
A part ca, connaitrais tu une fonction qui renverrait la taille du buffer stdin ?
Merci encore.
 




 
il me semble que de mémoire sous unix, les entrées/sorties de haut-niveau ont un buffer de 512 octets (aligné sur la taille d'un secteur physique de dur), mais c'est ptet une connerie....

Reply

Marsh Posté le 20-07-2002 à 21:13:03    

ok merci pour vos réponses, je v essayer de me débrouiller.

Reply

Sujets relatifs:

Leave a Replay

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