Du fichier au tableau
Fermé
maya89
Messages postés
22
Date d'inscription
samedi 22 septembre 2007
Statut
Membre
Dernière intervention
8 juin 2010
-
3 févr. 2008 à 23:06
kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Non membre Dernière intervention 5 février 2025 - 4 févr. 2008 à 00:20
kilian Messages postés 8732 Date d'inscription vendredi 19 septembre 2003 Statut Non membre Dernière intervention 5 février 2025 - 4 févr. 2008 à 00:20
A voir également:
- Du fichier au tableau
- Fichier rar - Guide
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Comment réduire la taille d'un fichier - Guide
7 réponses
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Non membre
Dernière intervention
5 février 2025
1 526
3 févr. 2008 à 23:17
3 févr. 2008 à 23:17
Bonjour,
J'ai mis quelques remarques en commentaire:
J'ai mis quelques remarques en commentaire:
void tableau_commercant(FILE* f,struct commercant com) { //Tu as oublié cette accolade int i; f=fopen("c:\\commercant.txt","r"); x=n*sizeof(com); //D'ou vient n? C'est une variable globale? A quoi sert x et ou est-il déclaré? for(i=0;i=nbrCommercant-1;i++) /*i=nbrCommercant-1 est la condition pour que la boucle continue mais là tu fais une affectation et non une comparaison, donc cette condition sera toujours vraie => boucle infinie */ { fseek(f,i,0); fread(&com,sizeof(com),1, f); T[i]=com; //D'ou vient T? variable globale? n++; } fclose(f); }
maya89
Messages postés
22
Date d'inscription
samedi 22 septembre 2007
Statut
Membre
Dernière intervention
8 juin 2010
3 févr. 2008 à 23:30
3 févr. 2008 à 23:30
n est une variable globale : int n=1;
T[i] est une variable de type commercant
T[i] est une variable de type commercant
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Non membre
Dernière intervention
5 février 2025
1 526
3 févr. 2008 à 23:33
3 févr. 2008 à 23:33
Très bien. Ben ma foi je t'ai dit tout ce que j'en pensais.
Pour le troisième argument de fseek, met plutôt SEEK_SET que 0 pour être sûr.
Pour le troisième argument de fseek, met plutôt SEEK_SET que 0 pour être sûr.
maya89
Messages postés
22
Date d'inscription
samedi 22 septembre 2007
Statut
Membre
Dernière intervention
8 juin 2010
3 févr. 2008 à 23:39
3 févr. 2008 à 23:39
alors le code est juste comme ça ??
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Non membre
Dernière intervention
5 février 2025
1 526
3 févr. 2008 à 23:57
3 févr. 2008 à 23:57
Si tu lis mes commentaires dans le code tu verras que non...
maya89
Messages postés
22
Date d'inscription
samedi 22 septembre 2007
Statut
Membre
Dernière intervention
8 juin 2010
4 févr. 2008 à 00:06
4 févr. 2008 à 00:06
void tableau_commercant(FILE* f,struct commercant com)
{
int i,n=1;
f=fopen("c:\\commercant.txt","r");
x=n*sizeof(com);
fseek(f,x,SEEK_SET );
fread(&com,sizeof(com),1, f);
T[i]=com;
n++;
fclose(f);
}
{
int i,n=1;
f=fopen("c:\\commercant.txt","r");
x=n*sizeof(com);
fseek(f,x,SEEK_SET );
fread(&com,sizeof(com),1, f);
T[i]=com;
n++;
fclose(f);
}
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Non membre
Dernière intervention
5 février 2025
1 526
4 févr. 2008 à 00:20
4 févr. 2008 à 00:20
Donc finalement tu ne veux plus utiliser de boucle? Du coup ton code ne veut plus dire grand chose....
Et puis pourquoi n= 1?
J'ai du mal à comprendre ta logique, pourquoi tu passes la structure com en paramètre alors qu'elle est juste utilisée comme structure intermédiaire dans ta fonction?
Je pense que globalement tu voudrais arriver à ça (si je comprends ta logique):
Et puis pourquoi n= 1?
J'ai du mal à comprendre ta logique, pourquoi tu passes la structure com en paramètre alors qu'elle est juste utilisée comme structure intermédiaire dans ta fonction?
Je pense que globalement tu voudrais arriver à ça (si je comprends ta logique):
void tableau_commercant(struct commercant T[], int n) { int i; FILE* f=fopen("c:\\commercant.txt","rb"); //Prend rb sous windows car tu as un fichier binaire ici. for(i=0; i<n; i++) { fread(&T[i],sizeof(struct commercant),1, f); //J'oubliais: pas besoin de fseek car fread avance tout seul le pointeur de fichier après lecture. } fclose(f); }