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 :

comparaison de valeur


Sujet :

C++

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 11
    Points : 8
    Points
    8
    Par défaut comparaison de valeur
    Bonsoir a tous !

    J'ai essayé plusieurs solutions pour comparer la valeur de l'identifiant du client saisie, et les identifiants contenus dans le fichier afin d'éviter de rentrer 2 clients avec le même identifiants, mais j'ai toujours beaucoup de bugs!

    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
    /* Programme Gestion Vente de films  */
    #include <iostream>
    #include <cstring>
    using namespace std;
    void gerer_client();
     
    // Type
     
     
         struct tclient
         {
                int id;
                int age;
                char nomcli[20+1];
                char prenom[20+1];
     
     
     
     
         };
     
    void ajoutercl() 
    {
     
    char nomcli[20+1];
          char supr[20+1];
          tclient info;
          int choix;
          int nb;
          FILE * fclient;
     
     
     
     
     // Ouvrir en lecture
     fclient=fopen("fclient.dat","a");
     cout<< " Saisir le nom du client " << endl;
     cin>>info.nomcli,50;
     
     
     cout<< " Saisir le prenom " << endl;
     cin>>info.prenom;
     
     cout<< " Saisir l'identifiant du client " << endl;
     cin>>info.id; 
     
     cout<< " Saisir l'age du client " << endl;
     cin>>info.age;
     
     
     
       // Ecriture des infos ds le fichier
     
       fwrite (&info, sizeof(struct tclient), 1, fclient);
     
       // Fermer flivre
     
       fclose(fclient);
    }

  2. #2
    Membre expérimenté Avatar de Trademark
    Profil pro
    Inscrit en
    Février 2009
    Messages
    762
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 762
    Points : 1 396
    Points
    1 396
    Par défaut
    Salut,

    Utilise les balises codes...

    Je ne vois aucunes tentatives pour comparer l'identifiant, qu'as-tu essayé ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    je ne vois pas comment utiliser ces balises

    j'ai enlevé ce que j'avais testé mais je te le met ci dessous :

    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
    /* Programme Gestion Vente de films  */
    #include <iostream>
    #include <cstring>
    using namespace std;
    void gerer_client();
     
    // Type
     
     
         struct tclient
         {
                int id;
                int age;
                char nomcli[20+1];
                char prenom[20+1];
         };
     
     
     
    void ajoutercl() 
    {
     
    char nomcli[20+1];
    char prenom[20+1];
          char supr[20+1];
          tclient info;
          int choix;
          int nb;
          FILE * fclient;
          bool verifier;
          bool verifier2;
     
     
     
     // Ouvrir en lecture
     verifier = false;
     fclient=fopen("fclient.dat","a");
     
     cout<< " Saisir le nom du client " << endl;
     cin>>info.nomcli,50;
     if (strcmp (info.nomcli, nomcli)=0)
     {
                verifier = true;
                cout<<"Le nom existe deja";     
                }                     
     
     cout<< " Saisir le prenom " << endl;
     cin>>info.prenom;
     if (strcmp (info.prenom, prenom)=0)
     {
                verifier2 = true;
                cout<<"Le prénom existe deja";
                }  
     
     
     if (verifier = true && verifier2 = true){
               cout<<" le client existe deja";
               fclose(fclient);
               }
    else{
     
     cout<< " Saisir l'identifiant du client " << endl;
     cin>>info.id; 
     
     cout<< " Saisir l'age du client " << endl;
     cin>>info.age;
     
     
       // Ecriture des infos ds le fichier
     
       fwrite (&info, sizeof(struct tclient), 1, fclient);
     
       // Fermer flivre
    }
       fclose(fclient);
    }

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    je n'arrive pas a comparer info.id avec l'id de la structure afin qu'il n'y ait pas 2 id pareils....

  5. #5
    Membre expérimenté Avatar de Trademark
    Profil pro
    Inscrit en
    Février 2009
    Messages
    762
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 762
    Points : 1 396
    Points
    1 396
    Par défaut
    De où sort la variable prénom et nom que tu compares ??

    De toutes façons, si tu veux vérifier que l'id n'est pas déjà présent, il faut que tu parcours tout le fichier et regarde les enregistrements un par un.

    Normalement, il ne faut pas faire ce genre de chose directement sur le fichier car c'est trop lent. On maintient (lorsque les données ne sont pas trop nombreuses) un tableau dynamique représentant le fichier et lors de certaines actions (par exemple sauvergarder) on met à jour le fichier en conséquence. Ainsi, l'ajout, la recherche ou encore la suppression se font directement dans le tableau. Ce qui est plus rapide car il est situé en mémoire VIVE contrairement au fichier qui est sur le disque dur.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 965
    Points
    32 965
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    l'opérateur d'égalité en C++ est ==.
    = est l'opérateur d'affectation.

    Mais étant donné que nomcli et prenom ne sont pas initialisés à quelque valeur que ce soit, ton test aura du mal à être vrai.
    Les fichiers en C++ sont gérés par fstream.
    Tu n'as pas de fonction main.
    Tu ne vérifies pas que le fichier est correctement ouvert.
    cin>>info.nomcli,50; à quoi sert le ,50 ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

Discussions similaires

  1. Réponses: 10
    Dernier message: 07/12/2006, 20h52
  2. GTK+ comparaison entier valeur du pointeur
    Par Emyleet dans le forum GTK+ avec C & C++
    Réponses: 10
    Dernier message: 21/07/2006, 15h28
  3. comparaison de valeur sur un résultat de requete
    Par griese dans le forum Langage
    Réponses: 5
    Dernier message: 28/06/2006, 15h23
  4. comparaison de valeurs
    Par Flobynaldo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/05/2006, 16h56
  5. Comparaison de valeurs stockees dans un meme champ
    Par Tartenpion dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/02/2006, 21h33

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