begin process at 2010 03 20 22:08:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

Fichier de structures


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fichier de structures

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ée 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...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,312 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales