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
Bonjour,
sos
je veux lire d un fichier texte en langage c contient des mots separer par "entrer" et les mettre dans une liste de structure contien chaqune 4 champs
qq pe m aider a ecrire la fonction qui fé la remplissage du liste a partir du TXT?



typedef struct pers
{char NOM[100];
char PRE[100];
float num;
char ville[50];
pers *suiv;
}Pers;


typedef struct
{int nb;
Pers * premier;
}liste ;
A voir également:

4 réponses

Utilisateur anonyme
11 mai 2009 à 15:35
La structure du fichier texte ?
0
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
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)
0
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
si tu essaie d'etre un peu plus préçis g pourrais t'aider ..........................
0
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
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 :)
0
Utilisateur anonyme
12 mai 2009 à 11:07
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 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 !
0