Résultats de 1 à 6 sur 6

Sujet : [Newbie] Comparaison variable (suite)

  1. #1
    Visiteur MP
    Visiteur MP
    Code:
    void ajoutetcompfic (tdatenum ladate, char nomfic [128]){
    tdatenum tabdate [100];
    int compt;
    int i,numero1,numero2;
    compt=0;
    FILE*fic;
    fic=fopen(nomfic, \"rb\");
    while(!feof(fic)){
    fread(&tabdate[compt],sizeof(tdatenum),1,fic);
    compt=compt+1;
    }
    fclose(fic);
    fic=fopen(nomfic,\"ab\");
    cout<<\"retapez le numero avant le tiret\"<<endl;
    cin>>numero1;
    cout<<\"retapez le numero aprees le tiret\"<<endl;
    cin>>numero2;
    for(i=0;i<compt-1;i++){
    if(((tabdate.numero1)!= numero1)&&(tabdate.numero2!=numero2)){
    fwrite(&ladate,sizeof(tdatenum),1,fic);
    }
    else{
    cout<<\"numero deja enregistrer\"<<endl;
    
    fclose(fic);
    }
    }
    }
    Cette procedure doit normalement comparer des numeros entre eux le pb c qu elle me dit bien que mes numeros sont pareil mais apres il ni a plus rien dans le fichier. le 2eme pb c quelle enregistre rien dans le fichier quand les numero sont different ou est l erreur merci.

  2. #2
    Membre MP
    Inscrit
    août 2013
    Messages
    6 517
    Un erreur est que tu ne fais le fclose que dans le cas du cout donc avec fwrite tu ne fermes pas, c\'est pas bon.

    Tu as déjà posté sur le sujet, pourquoi avoir ouvert un nouveau dessus ?
    Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
    N'oubliez pas le Tag [Résolu]http://www.ressources.moteurprog.com...rum/Resolu.gif.

    Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

  3. #3
    Visiteur MP
    Visiteur MP
    en fait la tout marche bien mais le pb maintenant c que la fonction me dit bien que le numero est deja enregistré mais elle me l enregistre quand meme cad que je me retrouve avec deux fois le meme numero alors qu il me le fo qu une seule fois cad qu il me fo que celui entré en premier que doit je faire?

  4. #4
    Visiteur MP
    Visiteur MP

    [Newbie] Comparaison variable (suite)

    je viens d essayer avec le fclose apres le cout et ca me met topujours les deux numero identique que doit je faire car il faut que g fini le prog pour ce soir sinon le patron va me tuer

  5. #5
    Visiteur MP
    Visiteur MP
    je viens d essayer en le fclose apres le cout
    Code:
    void ajoutetcompfic (tdatenum ladate,  char nomfic [128]){
         tdatenum tabdate [100];
         int compt;
         int i,numero1,numero2;
         compt=0;
         FILE*fic;
         fic=fopen(nomfic, \"rb\");
         while(!feof(fic)){
              fread(&tabdate[compt],sizeof(tdatenum),1,fic);
              compt=compt+1;
              }
              fclose(fic);
              fic=fopen(nomfic,\"ab\");
              cout<<\"retapez le numero avant le tiret\"<<endl;
              cin>>numero1;
              cout<<\"retapez le numero aprees le tiret\"<<endl;
              cin>>numero2;
              for(i=0;i<compt-1;i++){
                     if(((tabdate[i].numero1)!= numero1)&&(tabdate[i].numero2!=numero2)){
                            fwrite(&ladate,sizeof(tdatenum),1,fic);
                     }
                     else{
                     cout<<\"numero deja enregistrer\"<<endl;
                     }
                     fclose(fic);
              }
    }
    Mais cela me donne toujours le meme resultat cad que g deux fois le même numero encore.

  6. #6
    Membre MP
    Inscrit
    août 2013
    Messages
    6 517
    Que représent compt ?

    qd tu ouvres la seconde fois, veux tu ecrire par dessus ou a la suite ?

    Je ne connais pas le \"ab\", si c\'est a la suite, fais \"a+\" si c\'est par dessus fait \"w+\".
    Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
    N'oubliez pas le Tag [Résolu]http://www.ressources.moteurprog.com...rum/Resolu.gif.

    Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

Informations du sujet

Utilisateur(s) parcourant ce sujet

il y a actuellement 1 utilisateur(s) parcourant ce sujet. (0 membre(s) et 1 visiteur(s))

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas éditer vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé