Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
964 connectés 

  FORUM HardWare.fr
  Programmation
  C

  lecture fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

lecture fichier

n°1290130
Profil sup​primé
Posté le 23-01-2006 à 15:19:29  answer
 

voila mon bout de code qui pose soucis :
 

Citation :

FILE *f;
 int lettreattendue;
 char *nomfichier;
 f=fopen("apprentissage.txt","r" );
  printf("yo \n" );
 /*while (fscanf(f,"%s %d",nomfichier,&lettreattendue)!=EOF);
 {
  printf("%s %d \n", nomfichier, lettreattendue);
  fscanf(f,"\n" );
 }*/
 fscanf(f,"%s ",nomfichier);
 fscanf(f,"%d",&lettreattendue);
 printf("%s %d \n", nomfichier, lettreattendue);
 fscanf(f,"\n" );
 fscanf(f,"%s ",nomfichier);
 fscanf(f,"%d",&lettreattendue);
 printf("%s %d \n", nomfichier, lettreattendue);
 fscanf(f,"\n" );
 fscanf(f,"%s ",nomfichier);
 fscanf(f,"%d",&lettreattendue);
 printf("%s %d \n", nomfichier, lettreattendue);
 //fscanf(f,"\n" );
 fclose(f);


 
avec en fichier apprentissage.txt :

Citation :


config1txt 1
config2txt 2
config3txt 3
 


 
j'ai un segmentation fault sur le fclose (en mettant l avant derniere ligne ou pas, ici elle n'y est pas puisque en commentaire) les 3 lignes étant bien lu...
deuxieme probleme sans le printf yo (ou printf autre connerie...) j'ai segmentation fault des le depart
autre probleme quand j essaie de faire une boucle (pour pouvoir lire un nombre indeterminé de lignes) avec while (scanf(f...) != EOL) ca me mets segmentation fault direct...
 
Pourquoi? :??:  

mood
Publicité
Posté le 23-01-2006 à 15:19:29  profilanswer
 

n°1290145
godbout
Génial.
Posté le 23-01-2006 à 15:29:37  profilanswer
 

ton char* nomfichier est faux. Faut donner une taille à ton tableau, assez grande pour récupérer les lignes de ton fichier.

n°1290178
Profil sup​primé
Posté le 23-01-2006 à 15:44:50  answer
 

merci ca marche mais j ai pas saisi pkoi  :??:  mes erreurs avaient apriori rien à voir mes printf me sortaient correctement les chaines de caracteres config1txt config2txt config3txt...


Message édité par Profil supprimé le 23-01-2006 à 15:47:08
n°1290186
Trap D
Posté le 23-01-2006 à 15:49:37  profilanswer
 

Lorsque tu fais un fscanf(f,"%s ",nomfichier); tu demandes à la fonction fscanf de lire une chaine de caractères dans le fichier et de la ranger à l'adresse indiquée par nomfichier. Nonfichier étant un pointeur non initialisé à une adresse valide, tu écris dans la nature,.
Parfois la nature fais bien les choses, et ça marche un peu, c'est-à-dire que fscanf a écrit dans une zone valide de la mémoire mais à bousiller des données qui y étaient rangées d'où les plantes observées quelques instructions plus tard.


Message édité par Trap D le 23-01-2006 à 15:50:56
n°1290188
Profil sup​primé
Posté le 23-01-2006 à 15:51:07  answer
 

par contre ca marche en lisant une ligne par une ligne
mais en utilisant la boucle while (en commentaire dans mon bout de code) ca lit que la derniere ligne du fichier :-(

n°1290197
Trap D
Posté le 23-01-2006 à 15:55:54  profilanswer
 

Tant que tu n'auras pas alloué de la mémoire à nomfichier avec malloc pour ranger les chaînes de caractères, tu auras "l'impression" que ça marche, mais en fait ton code SERA FAUX !!!

n°1290208
Profil sup​primé
Posté le 23-01-2006 à 16:04:00  answer
 

oui c'est bon j ai mis char nomfichier[50] à la place comme l'as dis Godbout !
ca marche niquel en lisant les trois ligne une par une.
maintenant le pbm est autre ma boucle while ne lis que la derniere ligne du fichier...

n°1290213
Trap D
Posté le 23-01-2006 à 16:06:30  profilanswer
 

Tu peux reposter le code que tu utilises actuellement ?

n°1290215
Trap D
Posté le 23-01-2006 à 16:07:07  profilanswer
 

Pas la peine, il y a un ',' à la fin du while !

n°1290219
Profil sup​primé
Posté le 23-01-2006 à 16:10:27  answer
 

putain j'suis une brele  :cry:  
dsl de t'avoir derangé pour ca, merci bcp

mood
Publicité
Posté le 23-01-2006 à 16:10:27  profilanswer
 

n°1290341
godbout
Génial.
Posté le 23-01-2006 à 17:39:13  profilanswer
 

C'est en forgeant qu'on devient boulanger [:super chinois]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  lecture fichier

 

Sujets relatifs
Lecture d'un fichier texte en boucle C++[ASP] Lecture dans un fichier texte
lecture date de fichier avec filemtimeLecture NON automatique d'un fichier vidéo
Probleme d'exception pour lecture fichierLecture d'un fichier à accés direct...
[résolu] lecture des informations d'un fichier[Shell] lecture d'un fichier txt ligne par ligne
Lecture d'hexa dans un fichier 
Plus de sujets relatifs à : lecture fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR