Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Fichier de structures [ Divers / Débutant(e) ] (boninou)

mercredi 20 juin 2007 à 10:58:20 | Fichier de structures

boninou

Bonjour,
Voila mon petit souci : J'ai un fichier de structures qui contient des structures Candidat :

struct Candidat
{
    char prenom[25];
    char nom[25];
    char parti[20];
    int rep[11];
};

Le fichier candidats.dat contient 2 structures.
Ma procédure "compare" qui compare les réponses de l'opérateur à celles des candidats est la suivante :

void compare(int reponses[], int comp[])
{
    int i=0, j;
    struct Candidat c;
    FILE *r;
    r=fopen("candidats.dat","rb"); //On ouvre le fichier en mode lecture
    fseek(r,0,SEEK_SET);
    while(i<2) //Tant qu'on n'a pas comparer tous les candidats
    {
        fread(&c,sizeof(struct Candidat),1,r);
        for(j=0;j<11;j++)
        {
            if(c.rep[j]==reponses[j])
            {
                 comp[i]=comp[i]+1;
            }
        }
       i=i+1;
    }
    fclose(r);
}

Mon problème est que la premiere réponse de chaque candidat ne se trouve pas en c.rep[0] mais en c.rep[-3] !!!
Comment cela se fait-il ???

Merci de vos réponses

mercredi 20 juin 2007 à 11:50:04 | Re : Fichier de structures

darunia

Salut,

Ouvre ton fichier en hexa et verifie que la 1ere réponse se trouve bien à l'offset 0x46 et pas 0x43.

D@runia

mercredi 20 juin 2007 à 13:07:18 | Re : Fichier de structures

boninou

Merci pour ta réponse comment puis-je faire pour l'ouvrir en hexa ?
Peut-être est ce que le problème vient de la création de mon fichier !
Voici le code de création :

struct Candidat
{
    char prenom[25];
    char nom[25];
    char parti[10];
    int rep[11];
};

int main()
{
    FILE *pf;
    int j;
    pf=fopen("candidats.dat","ab");
    fseek(pf,0,SEEK_END);
    struct Candidat c;
    printf("Prenom : ");
    scanf("%s",c.prenom);
    printf("Nom : ");
    scanf("%s",c.nom);
    printf("Parti : ");
    scanf("%s",c.parti);
    for(j=0;j<11;j++)
    {
    printf("Reponse %d : ",j+1);
    scanf("%d",&c.rep[j]);
    }
    fwrite(&c,sizeof(struct Candidat),1,pf);
}

mercredi 20 juin 2007 à 13:12:13 | Re : Fichier de structures

darunia

Utilise un éditeur hexadecimal, comme hexedit ou ultraedit.
Je pense aussi que le probleme vient de la creation du fichier.

D@runia

mercredi 20 juin 2007 à 13:25:22 | Re : Fichier de structures

boninou

J'utilise ultraedit mai je n'arrive pa a trouver l'offset 0x46.
Je peut t'envoyer mon fichier ?

A tu regarder mon code de création. Qu'est ce qui ne va pas ?

Merci



Cette discussion est classé dans : fichier, int, rep, structures, candidat


Répondre à ce message

Sujets en rapport avec ce message

Créer un fichier de structures [ par boninou ] Bonjour,Je dois développer un bout de code qui me permette de créer et de remplir un fichier "candidats.dat" qui contient des structures de type candi Probleme dans mon programme password [ par Jarod1980 ] Salut tout le monde,Voilà j'ai un problème dans mon programme de password. Je m'explique: J'ai développé en premier lieu un programme où l'utilisateur Probleme ASCII et coonversion string vers char (enfin je pense) [ par Leptis ] Salut a tous les pgm qu'il y a sur ce site. Avant tout je tien à vous prévenir que je suis en gros newbie en C.Voila mon problème : je cherche à faire ça marchait ce matin mais plus maintenant! [ par marieinthesky ] Bonjour à tous,j'essaye d'écrire une fonction qui va faire la moyenne de plusieurs données lues dans des fichiers, ça marchait ce matin puis j'ai voul problème de changement de données d'un tableau [ par martram ] Bonjour, j'ai débuté un programme qui devrait lire des données dans un fichier pour ensuite les traiters, et je suis bloqué puisqu'après avoir lu les un probléme avec la lecture de fichier [ par sanae19 ] bonsoir en fait voila j'ai un petit probléme de lecture de fichier en fait ma, methode marche tres bien tout seule mai le probléme c'est qu'elle enreg Utilisation du settimer [ par titi4659 ] Bonjour,je souhaiterai utiliser le SetTimer() mais j'ai des problèmes avec:J'utilise bien une fonction callback dans laquelle je vais écrire dans un f Lecture fichier impossible avec SDL [ par CCJ ] Hello.j'utilise SDL pour me faire un petit jeu 2D. Seulement je recontre actuellement un petit probleme. Il semblerait en effet qu'il bloque l'utilisa Ecrire colonne par colonne dans un fichier xls [ par Pistol_Pete ] Bonjour à tous,J'essaie desespérément de remplir un tableau xls colonne par colonne. En effet, après avoir remplit la première colonne, je reviens au chemin du fichier en court [ par mohzag ] Salut a tous, <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,640 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.