IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

structure de donnée en c


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Par défaut structure de donnée en c
    bonjour

    j'ai créer une structure en c mais le problème dans le code c'est qu'il ne me permet pas de lire le caractère de nom "grade" donc l'insertion lors de saisie est impossible, s'il vous plaît aidez mois pour résoudre ce problème. merci d'avance.
    mon code se trouve dans la pièce jointe.
    Fichiers attachés Fichiers attachés

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Le problème vient -je pense- du buffer d'entrée qui n'est pas vide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      printf("donner le nbHsup: ");
      scanf("%d",&e->nbHsup);
      printf("donner le grade: ");
      scanf("%c",&e->grade);
    L'utilisateur va entrer (par exemple)
    Dans le buffer clavier, on aura : le scanf("%c"...) va lire le '\n' qui reste en trop dans le buffer d'entrer.

    Le plus simple est de vider la buffer après chaque saisie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    void SaisirEmploye(employe *e)
    { 
      printf("donnez le nom: ");
      scanf("%s",e->nom);
      clean_stdin();
     
      printf("donner le prenom: ");
      scanf("%s",e->prenom);
      clean_stdin();
     
      printf("donner le matricule: ");
      scanf("%d",&e->matricule);
      clean_stdin();
     
      printf("donner le salaire: ");
      scanf("%f",&e->salaire);
      clean_stdin();
     
      printf("donner le nbHBase: ");
      scanf("%d",&e->nbHbase);
      clean_stdin();
     
      printf("donner le nbHsup: ");
      scanf("%d",&e->nbHsup);
      clean_stdin();
     
      printf("donner le grade: ");
      scanf("%c",&e->grade);          
      clean_stdin();
    }
    Liens FAQ vers la fonction qui vide le buffer d'entrée : http://c.developpez.com/faq/?page=cl...buffer_clavier

    Un peu de lecture : http://xrenault.developpez.com/tutoriels/c/scanf/#L3.2

    A noter : ce code n'est pas encore robuste : que se passe-t-il si l'utilisateur entre abcd là ou on lui demande un nombre ?

Discussions similaires

  1. Comment créer une structure de donnée dynamiquement ?
    Par Beaunico dans le forum Langage
    Réponses: 9
    Dernier message: 24/01/2006, 09h34
  2. Aide pour diagramme de structure des données
    Par DeezerD dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 04/12/2004, 19h10
  3. Méta-Programmation - [ structures de données ]
    Par Dam)rpgheaven dans le forum C++
    Réponses: 3
    Dernier message: 03/12/2004, 19h38
  4. Structure des données en retour d'un DBExtract ?
    Par mikouts dans le forum XMLRAD
    Réponses: 4
    Dernier message: 24/01/2003, 15h15
  5. Structure de données de type "RECORD"
    Par chaours dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 30/09/2002, 17h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo