lire dans un fichier texte - C++ - Programmation
Marsh Posté le 18-06-2002 à 10:02:41
mik38 a écrit a écrit : Bonjour, j'aimerais lire dans un fichier texte et remplir un tableau de structure avec chaque ligne de ce fichier. Ci dessous le n'importe quoi que j'ai tenté (copier/coller maladroit de l'écriture dans le fichier) FILE *f; if ((f=fopen("D:\fichier.txt","rt" ))==NULL) throw Sysutils::Exception("Impossible de lire le fichier" ); while (!eof) { fprintf(f,"%s",(Tab[i].Nom + "\n" + Tab[i].Prenom + "\n" + Tab[i].Tel + "\n\n" )); i++; } fclose(f); Le fichier texte ressemble à ça: nom prenom tel nom prenom tel etc... Merci d'aider un débutant qui passe l'exam demain... |
Effectivement c'est n'importe quoi, bon alors regarde du côté des objet fstream (puisque apparement tu essaye de faire ça en C++).
Âller un petit exemple pour la route:
Code :
|
Marsh Posté le 18-06-2002 à 10:17:26
Ben tu peux mais bon autant faire quelquechose d'homogène, tout en C ou tout en C++.
Code :
|
Marsh Posté le 18-06-2002 à 10:28:03
Si je comprend bien fopen c'est du C et ta permiere solution du
C++.
Merci pour ton exemple mais comment parcourir tout le fichier jusqu'a la fin et remplir mon tableau de structure?
(en sachant qu'il y a une ligne de saute entre les differents enregistrements)
Marsh Posté le 18-06-2002 à 10:48:16
tu as le choix de format pour le fichier txt ?
style:
nom,prenom,tel
nom,prenom,tel
etc..
Marsh Posté le 18-06-2002 à 10:53:31
Cherche du côté de strtok (string.h)
Marsh Posté le 18-06-2002 à 14:17:28
Il faut que je fasse simple, fprintf marchait mais fscanf me fait une violation d'accès
Please help me..
[cpp] FILE *f;
if ((f=fopen("Liste Generale.txt","r+" ))==NULL)
throw Sysutils::Exception("Impossible de lire le fichier" );
while (!feof())
{
fscanf(f,"%s",Tab[i].Nom);
i++;
}
fclose(f);
Marsh Posté le 18-06-2002 à 15:40:16
...
Marsh Posté le 18-06-2002 à 15:44:29
Je voulais poster un noiuveau message ... j'ai répondu a celui ci ..
désolé
Marsh Posté le 18-06-2002 à 16:10:20
mik38 a écrit a écrit : Il faut que je fasse simple, fprintf marchait mais fscanf me fait une violation d'accès Please help me..
|
Code :
|
Marsh Posté le 18-06-2002 à 16:31:40
Inutile le fseek, c'est automatique avec le fscanf (qui est pas l'idéale d'ailleur mieux vaut fgets dans ce cas là)
Marsh Posté le 18-06-2002 à 16:36:42
letoII a écrit a écrit : Inutile le fseek, c'est automatique avec le fscanf (qui est pas l'idéale d'ailleur mieux vaut fgets dans ce cas là) |
j'utilise tjs les fonction de l'API Win32 moi pr lire les fichiers.
le fscanf, il fait un fseek comme je l'ai fait ? (il déplace du nombre de bytes lues ?)
Marsh Posté le 18-06-2002 à 16:37:56
Oui, toutes les fonctions de lecture du c font avancer la position sur le flux.
Marsh Posté le 18-06-2002 à 21:31:49
http://www.esiee.fr/~morellea/EXEM [...] opie1.html
lis, ça devrait t'aider (c'est mon prof qui nous a donné ça en 1ere année et ça m'avait suffit pour comprendre)
Marsh Posté le 18-06-2002 à 09:50:08
Bonjour,
j'aimerais lire dans un fichier texte et remplir un tableau de structure avec chaque ligne de ce fichier. Ci dessous le n'importe quoi que j'ai tenté (copier/coller maladroit de l'écriture dans le fichier)
FILE *f;
if ((f=fopen("D:\fichier.txt","rt" ))==NULL)
throw Sysutils::Exception("Impossible de lire le fichier" );
while (!eof)
{
fprintf(f,"%s",(Tab[i].Nom + "\n" + Tab[i].Prenom + "\n" + Tab[i].Tel + "\n\n" ));
i++;
}
fclose(f);
Le fichier texte ressemble à ça:
nom
prenom
tel
nom
prenom
tel
etc...
Merci d'aider un débutant qui passe l'exam demain...