Lire des informations se trouvant dans un fichier et les placer dans un tableau

Signaler
Messages postés
1
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
21 avril 2005
-
Messages postés
11
Date d'inscription
samedi 12 février 2005
Statut
Membre
Dernière intervention
12 août 2006
-
Bonjour à tous,

J'ai un problème qui me bloque dans la programmation d'un projet de 1ere.
Voila.
Dans un fichier texte se trouve ces informations (formattée comme ci-dessous):
-------------------------------------------
0
verre
recipient pour liquide
1
eau
liquide se trouvant dans le mer le corps
--------------------------------------------

"0" était un nombre reference
"verre" est le mot
"recipient pour liquide" est la definition

J'ai crée un tableau de structure :
tab[i].nb --> le nombre de reference
tab[i].mot --> pour le mot
tab[i].defi --> pour la défition

Alors voici mon problème, je ne comprends pas comment aller rechercher les valeurs qui se trouvent dans le fichier pour les replacer dans mon tableau de structure et pouvoir travailler dessus.
Est ce que quelqu'un peut m'aider ce serait vraiment sympa parce que là, mon cerveau ne veut plus rien faire.
Merci beaucoup à tous d'avance.

Morg'

3 réponses

Messages postés
119
Date d'inscription
mercredi 15 octobre 2003
Statut
Membre
Dernière intervention
21 juillet 2009

Il faut inclure des .h
#include <fstream.h>
#include

ensuite il faut ouvrir le fichier

ifstream entree("nom du fichier", ios::in | ios::binary);

ensuite il faut tester si le fichier est bien ouvert
if(!entree)
le fichier n'est pas ouvert
else //le fichier est ouvert
{
//ici il faut aller lire le fichier caractere par caractere
//en utilisant la fonction entree.read( char * , nombre de caractères a lire);
//par exemple
char c;
while(entree.read(&c, 1)) //va lire les caractères un par un jusqu'à la fin du fichier
cout << c ;

//fermeture du fichier
entree.close();
}

après suffit d'appliquer ça à votre application
la référence , le mot et la définition étant séparés par un changement de ligne
le changement de ligne étant 2 caractères : 0x0A et 0x0D en hexa c'est facile de savoir quand tu as reçu tous les caracères pour la référence , le mot et la définition .
Messages postés
11
Date d'inscription
samedi 12 février 2005
Statut
Membre
Dernière intervention
12 août 2006

Moi j'aurais fait autremnt :
Tu ouvre ton fichier

FILE *pfich
pfich=fopen("nom_fich.txt","r")

Puis tu fscanf. Si tu est sure que ton fichier txt est correctement concu, y'a plus qu'une boucle à faire.
while(1){
if (fscanf(pfich,"%i",&tab[i].nb==EOF} break;
fscanf(pfich,"%s",&tab[i].mot);}

Je sais jamais s'il faut mettre un & ou non.
Ca devrai marcher.
Messages postés
11
Date d'inscription
samedi 12 février 2005
Statut
Membre
Dernière intervention
12 août 2006

Je crois qu'il doit aussi y avoir un probmléme avec le fscanf. Il s'arrete avec les espace, les \n et les tabultation. Faut peutetre utilisé un fgets ???