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 :

exercice de structure


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2007
    Messages : 69
    Par défaut exercice de structure
    salut camarades;

    j'ai un exercice qui consiste a creer une structure comportant le matricule ,le nom et le salaire d'un employé;ce petit programme permet d'ajouter autant d'employe sans étre obligé de donner leurs nombre au début. et retourne a la fin le nombre d'employé entrer par l'utilisateur;

    voici le code dont jé rencontré 1 probléme:leprogramme saute l'étape pour entrer le nom de l'employé+ ne retourne pas leurs nombres(employés) a la fin;merci
    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
    #include<stdio.h>
    #include<conio.h>
     
    struct employe
    {int mat;
    char nom[20];
    int sal;};
     
    main()
    {
      struct employe E[100];
      int n,i=0;
      do
      {
      printf("voulez vous ajouter un employe ? entrer (0/1) avec 0=non et 1=oui:");
      scanf("%d",&n);
      if(n==0)  break;
     
     
      printf("entrer le marticule :");
      scanf("%d",&E[i].mat);
      printf("entrer le nom de l'employe:");
      gets(E[i].nom);
      printf("entrer le salaire de l'employe:");
      scanf("%d",&E[i].sal);
      i++;
      }
      while(n==1);
      return i;
    }

  2. #2
    Membre éclairé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par défaut
    Je ne conseille pas d'utiliser gets, comme tu as commencé avec scanf, tu peux encore l'utiliser :
    Ensuite le break dans le while à éviter!!!

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2007
    Messages : 69
    Par défaut
    Citation Envoyé par juve1897 Voir le message
    Je ne conseille pas d'utiliser gets, comme tu as commencé avec scanf, tu peux encore l'utiliser :
    Ensuite le break dans le while à éviter!!!

    merci juve pour ta réponce;
    mais je vois pas quel est le probléme pour gets;parcontre je l'ai utilisé dans d'autre prorammeg é ça a bien marché.

  4. #4
    Membre émérite Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Par défaut
    Salut,
    Il faut d'abord vider le buffer sinon ton gets lira toujours la touche entrée utilisée pour valider le premier scanf ( gets n'est pas à conseiller ) ...pour plus de détails ( vider le buffer proprement + lecture sécurisée avec fgets ) je te conseil de lire la FAQ

    petite remarque le #include<conio.h> est inutile pour ce bout de code ...

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Il ne faut jamais utiliser gets, ni même scanf si on la maîtrise pas, préférez fgets
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  6. #6
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2007
    Messages : 69
    Par défaut
    j'ai remplacé le gets par un scanf;ça a bien marché .mais j'ai encore deux problémes:

    -le programme ne retourne pas le ombre des employé a la fin?

    -je suis pas encore convaincu de l'inefficacité de gets.je veux avoir le gets dans mon programme.

  7. #7
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par juve1897 Voir le message
    Je ne conseille pas d'utiliser gets, comme tu as commencé avec scanf, tu peux encore l'utiliser :
    Et en quoi c'est mieux ? De plus, on ne peux plus entrer plusieurs mots...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. exercice variable structure
    Par program1 dans le forum C
    Réponses: 3
    Dernier message: 11/06/2014, 09h53
  2. Exercice sur les structures
    Par Robmilou dans le forum Débuter
    Réponses: 2
    Dernier message: 19/05/2008, 01h57
  3. aide pour exercice sur les structures
    Par demetria dans le forum C
    Réponses: 10
    Dernier message: 25/09/2007, 22h11

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