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 :

boucle qui cause la perte d'une instruction


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut boucle qui cause la perte d'une instruction
    bon mon programme fait la construction d'un article (enregistrement ) à partir des données lues (le nom, le prénom, l'age, la ville et les compétences d'un employé)tel que
    • le nom : chaine de taille fixe
    • le prénom : chaine de taille fixe
    • la ville : chaine de taille fixe
    • les compétences : une chaine de taille variable


    l'age est un entier que l'on doit convertir en chaine pour le concaténer ensuite avec les chaines précédemment lues et concaténées
    exemple : article ="samibidonfrance21programmation"

    bon problème est lorsque j'ai plusieurs articles à construire, quand je rentre dans la boucle, je lis les premières données nécessaire pour construire le premier article. Après lorsque je viens rentrer les données pour le deuxième article, il saute le nom et il demande d'entrer le prénom directement alors que l'on doit entrer le nom, après le prénom comme pour le premier article (il saute l’instruction à partir de la deuxième itération :'(

    et voici mon programme stp c urgent aidez moi

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define max_char 1024
     
     
    char *recup_article()
    {
    ///clé(sur 6 caractères)+taille(sur 3 char) + supprimé(1 seul char )+ info=type_tr(20 char)+type_imo(20 char)+ ville(sur 20 char)+ prix(20 char) + desciption(taille variable)
     
     int i,rec,rep;
     char type_immo[20];
     char type_tran[20];
     char vile[20];
     char prix_ch[20];
     char recupi[max_char];
     char *desc= malloc (sizeof (*desc) * 256),*recup4= malloc (sizeof (*recup4) * 256);
    int prix;
    int  c,i1 = 0;
    char s[max_char];
     printf("\n entrez le type de l'immobilier ");
         gets(type_immo);
    printf("\n entrer le type de trns ");
        gets(type_tran);
    printf("\n entrer la ville ");
        gets(vile);
         printf("\n entrer le prix ");
        scanf("\n %d",&prix);
     
     
     sprintf(prix_ch,"%d",prix);
     
     printf("\n entrer la description de votre fichier ");
    c = getchar() ;
    while((c=getchar()) != EOF && c != '$')
        {
        s[i1] = c;
        i1++;
     
     
        }
        s[i1] = '\0';
     
     
       strcpy(desc,s);
        printf ("%s",s);
        printf(" la description %s",desc);
    printf("\n  la description de votre fichier est %s ",desc);
     
    i = strlen(desc);
         printf ("la longueur de la description est %d",i);
     
     strcpy(recupi,type_immo);
     
        strcat(recupi,"#");
     
        strcat(recupi,type_tran);
        strcat(recupi,"#");
        strcat(recupi,vile);
         strcat(recupi,"#");
       recup4 = strcat(recupi,prix_ch);
        strcat(recupi,"#");
         strcat(recupi,desc);
     
     
     
       printf("\n votre article est alors :%s ",recupi);
     
    return recupi;
     
    }
    int main()
    {
    char nam[20];
    char mod;
    int f;
    char *recuper= malloc (sizeof (*recuper));
    for (f=0;f<2;f++)
    {
    recuper = recup_article();
    printf("\n la taille de l'article %d\n",strlen(recuper));
    }
    return 0;
    }
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 631
    Points : 30 862
    Points
    30 862
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par lousalo Voir le message
    bon mon programme...
    Ouais ok, bonjour à toi aussi.

    Citation Envoyé par lousalo Voir le message
    et voici mon programme stp c urgent aidez moi
    Ouais, c'est vrai c'est urgent.
    Bon ben moi je vais me mettre un film avec une petite tasse de thé. Si tu trouves quelques esclaves prêts à obéir à toutes tes exigences fais-moi signe
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Futur Membre du Club
    Homme Profil pro
    UTC
    Inscrit en
    Décembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : UTC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Effectivement pense à revoir la formulation de ton problème , en y ajoutant une formule de politesse, ça fait toujours plaisirs.

    Pour ce qui est de ton problème je pense que ça vient du fait que tu n'effectue pas de flush après ton scanf.

    Essai d'ajouter fflush(stdin) après ton scanf.

    Cdt

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 360
    Points : 23 600
    Points
    23 600
    Par défaut
    Bonsoir,

    Citation Envoyé par Slash__ Voir le message
    Pour ce qui est de ton problème je pense que ça vient du fait que tu n'effectue pas de flush après ton scanf.

    Essai d'ajouter fflush(stdin) après ton scanf.
    Non, absolument pas : http://www.developpez.net/forums/d10...r/#post6047528

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 631
    Points : 30 862
    Points
    30 862
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Slash__ Voir le message
    Pour ce qui est de ton problème je pense que ça vient du fait que tu n'effectue pas de flush après ton scanf.

    Essai d'ajouter fflush(stdin) après ton scanf.
    Salut
    Te faudra apprendre à maitriser le contenu de ton clavier mon grand
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Code qui se répète à cause d'une instruction d'impression delphi
    Par makaphrodite dans le forum Autres outils décisionnels
    Réponses: 7
    Dernier message: 22/01/2009, 12h00
  2. Code qui se répète a cause d'une instruction d'impression
    Par makaphrodite dans le forum Langage
    Réponses: 9
    Dernier message: 18/11/2008, 16h43
  3. [Tableaux] une boucle qui ne boucle pas
    Par taly dans le forum Langage
    Réponses: 9
    Dernier message: 19/09/2006, 18h25
  4. [VBA-E]une boucle qui ne s'arrète pas
    Par vivelesgnous dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/02/2006, 19h05
  5. Requete SELECT qui cause une erreur SQL
    Par ahage4x4 dans le forum ASP
    Réponses: 23
    Dernier message: 10/06/2005, 15h46

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