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...