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

morgause Messages postés 1 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 21 avril 2005 - 21 avril 2005 à 09:37
Guegue85 Messages postés 11 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 12 août 2006 - 22 avril 2005 à 16:41
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

catamenia Messages postés 119 Date d'inscription mercredi 15 octobre 2003 Statut Membre Dernière intervention 21 juillet 2009
21 avril 2005 à 11:01
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 .
0
Guegue85 Messages postés 11 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 12 août 2006
22 avril 2005 à 16:40
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.
0
Guegue85 Messages postés 11 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 12 août 2006
22 avril 2005 à 16:41
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 ???
0
Rejoignez-nous