Lire d un fichier txt en c
Fermé
albatros0086
Messages postés
4
Date d'inscription
dimanche 19 avril 2009
Statut
Membre
Dernière intervention
8 juin 2010
-
11 mai 2009 à 14:54
Utilisateur anonyme - 12 mai 2009 à 11:07
Utilisateur anonyme - 12 mai 2009 à 11:07
A voir également:
- Lire d un fichier txt en c
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Lire fichier epub - Guide
- Fichier rar - Guide
- Lire fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
4 réponses
albatros0086
Messages postés
4
Date d'inscription
dimanche 19 avril 2009
Statut
Membre
Dernière intervention
8 juin 2010
11 mai 2009 à 20:07
11 mai 2009 à 20:07
un fichier texte ecrite deja je ve le recuperer sous formes des structure des personnes constitant une liste chainé chaque personne constitué par 4 champs (les champs sont ecri dans l ordre personne apres personne ds le fichier)
saoud.k
Messages postés
12
Date d'inscription
mercredi 22 novembre 2006
Statut
Membre
Dernière intervention
11 mai 2009
11 mai 2009 à 21:40
11 mai 2009 à 21:40
si tu essaie d'etre un peu plus préçis g pourrais t'aider ..........................
albatros0086
Messages postés
4
Date d'inscription
dimanche 19 avril 2009
Statut
Membre
Dernière intervention
8 juin 2010
11 mai 2009 à 21:58
11 mai 2009 à 21:58
ok
j ai un texte (*.txt )exp:
haythem
azerty
22222222
YTREZA
SALAH
POIUYTR
3456544
szdefrgthy
j ai l structure suivante:
typedef struct pers
{char NOM[100];
char PRENOM[100];
int NUMERO_TEL;
char ville[50];
pers *suiv;
}Pers;
une liste simplement chainée
typedef struct
{int nb;
Pers * premier;
}liste ;
je veux construire une liste L de type liste qui contient (dans notre exp ) 2 personnes (type pers) a partir de ce fichier txt
merci d avance :)
j ai un texte (*.txt )exp:
haythem
azerty
22222222
YTREZA
SALAH
POIUYTR
3456544
szdefrgthy
j ai l structure suivante:
typedef struct pers
{char NOM[100];
char PRENOM[100];
int NUMERO_TEL;
char ville[50];
pers *suiv;
}Pers;
une liste simplement chainée
typedef struct
{int nb;
Pers * premier;
}liste ;
je veux construire une liste L de type liste qui contient (dans notre exp ) 2 personnes (type pers) a partir de ce fichier txt
merci d avance :)
re !
En fait tu dois lire ton fichier texte, et récuperer les champs 4 par 4. La fin de ton fichier texte doit se finir par une ligne vide.
Bon je suis gentil je te donne un code qui lit le fichier. A toi de faire le reste (avec ça tu devrait faire ton programme en 30mn à tout casser).
Au lieu d'afficher tu remplis ta structure etc...
****************************** fichier texte *****************************
A toi de modifier le Buffer, au lieu de prendre ligne tu peux faire plusieurs chaines etc... mais la base est là !
Bon courage !
En fait tu dois lire ton fichier texte, et récuperer les champs 4 par 4. La fin de ton fichier texte doit se finir par une ligne vide.
Bon je suis gentil je te donne un code qui lit le fichier. A toi de faire le reste (avec ça tu devrait faire ton programme en 30mn à tout casser).
Au lieu d'afficher tu remplis ta structure etc...
***************************Fichier C******************************** #include <stdio.h> #include <stdlib.h> #include <string.h> //nombre de caractères dans une ligne du fichier (256 toi c'est 100 ou 50 ...) #define BUFFER 256 int main(void) { FILE *fichier; char *ligne = (char*)malloc(sizeof(char)*BUFFER); int i; fichier = fopen("data.txt", "r"); //si le fichier existe if(fichier != NULL) { i=1; //tant qu'on est pas à la fin while(!feof(fichier)) { //lit la première ligne, si c'est un \n alors j'arrête fgets(ligne,BUFFER,fichier); if(strcmp(ligne,"\n")!=0) { printf("*********** Personne %d ***********\n\n",i); printf("Nom : %s\n", ligne); fgets(ligne,BUFFER,fichier); printf("Prenom : %s\n", ligne); fgets(ligne,BUFFER,fichier); //ici il faut caster en int pour ta structure printf("Tel : %s\n", ligne); fgets(ligne,BUFFER,fichier); printf("Ville : %s\n", ligne); i++; } else break; //pas très propre le break, mais il fera l'affaire } fclose(fichier); } else { printf("Le fichier n'existe pas"); } free(ligne); //libère la mémoire return 0; } *******************************************************************
****************************** fichier texte *****************************
jean dupont 0102030405 paris ahmet leboss 0304050607 reims albatros deCCM 0607080910 paris ********************************************
A toi de modifier le Buffer, au lieu de prendre ligne tu peux faire plusieurs chaines etc... mais la base est là !
Bon courage !