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

  FORUM HardWare.fr
  Programmation
  C

  Lire une ligne d'un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Lire une ligne d'un fichier

n°1430102
lepaysdu s​ucre
Posté le 23-08-2006 à 17:39:34  profilanswer
 

Bonjour,
 
J'ai un petit probleme de C. Je voudrais lire une ligne entiere de mon fichier txt mais j'arrive a lire que le premier mot en faisant: fscanf(fParam,"%s\n",buffer);
Comment dois je faire?
Merci

mood
Publicité
Posté le 23-08-2006 à 17:39:34  profilanswer
 

n°1430110
_darkalt3_
Proctopathe
Posté le 23-08-2006 à 17:49:18  profilanswer
 
n°1430113
Elmoricq
Modérateur
Posté le 23-08-2006 à 17:54:25  profilanswer
 

Pas mieux que _darkalt3_, fgets() fait ce que tu souhaites.
 
Pour les fonctions *scanf(), il faut savoir que celles-ci sont des fonctions de lecture formatées, autrement dit ce sont des fonctions qui ne sont pas si simples à utiliser parce qu'il faut jouer avec les patterns.
Et quand je dis jouer, c'est jouer correctement, pour blinder son pattern et ainsi éviter les problèmes de saisies qui peuvent autrement provoquer la mort de ton programme dans d'atroces souffrances.
 
Bref, si c'est juste pour lire une ligne de données dans un fichier, autant utiliser fgets().

n°1430118
lepaysdu s​ucre
Posté le 23-08-2006 à 17:57:51  profilanswer
 

Ca marche tres bien sauf qu apres je met ca ds un CString et ca me sort un caractere carre a la fin de chaque ligne.

n°1430121
_darkalt3_
Proctopathe
Posté le 23-08-2006 à 18:03:47  profilanswer
 

Renseigne toi donc sur les caracteres de fin de chaine, regarde ce qu'il y a dans ta chaine obtenue par le fgets

n°1430124
skelter
Posté le 23-08-2006 à 18:08:13  profilanswer
 

lepaysdu sucre a écrit :

Ca marche tres bien sauf qu apres je met ca ds un CString et ca me sort un caractere carre a la fin de chaque ligne.


 
 
ouvre le fichier en mode texte, ca garanti qu'une ligne est terminée uniquement par un \n

n°1430127
Elmoricq
Modérateur
Posté le 23-08-2006 à 18:11:32  profilanswer
 

lepaysdu sucre a écrit :

Ca marche tres bien sauf qu apres je met ca ds un CString et ca me sort un caractere carre a la fin de chaque ligne.


 
CString ? Qu'est-ce que c'est ? [:el g]

n°1430135
lepaysdu s​ucre
Posté le 23-08-2006 à 18:21:39  profilanswer
 

skelter a écrit :

ouvre le fichier en mode texte, ca garanti qu'une ligne est terminée uniquement par un \n


Je viens d essayer d ouvrir mon fichier en mode txt avec fopen_s(&fParam,_bstr_t(filename),"t" )
mais quand j execute ca me fait une erreur en me disant "invalide file open mode". C est pas comme ca que je dois ouvrir mon fichier en mode texte?

n°1430136
skelter
Posté le 23-08-2006 à 18:25:03  profilanswer
 

il faut preciser lecture/ecriture/ajout...
 
"rb" -> lecture binaire
"rt" -> lecture texte
"r" -> lecture texte si ton implementation est conforme avec l'ansi
 
edit: c'est quoi fopen_s ?

Message cité 1 fois
Message édité par skelter le 23-08-2006 à 18:25:56
n°1430146
lepaysdu s​ucre
Posté le 23-08-2006 à 18:34:58  profilanswer
 

fopen_s c comme fopen mais en ameliorer pour VS2005.

mood
Publicité
Posté le 23-08-2006 à 18:34:58  profilanswer
 

n°1430152
lepaysdu s​ucre
Posté le 23-08-2006 à 18:38:10  profilanswer
 

ca change toujours rien quand je met "rt" et que j utilise fget j ai toujours ce caractere carre.

n°1430220
_darkalt3_
Proctopathe
Posté le 23-08-2006 à 20:26:10  profilanswer
 

que dit la doc ?
 
et pourquoi pas fopen ?

n°1430228
lepaysdu s​ucre
Posté le 23-08-2006 à 20:40:07  profilanswer
 

j ai deja essaye avec fopen c pareil, meme resultat

n°1430229
skelter
Posté le 23-08-2006 à 20:42:10  profilanswer
 

alors ca vient de ton fichier, sinon montre ton fichier et le code

n°1430231
_darkalt3_
Proctopathe
Posté le 23-08-2006 à 20:55:07  profilanswer
 

il vient d'unix ton fichier ?

n°1430604
Emmanuel D​elahaye
C is a sharp tool
Posté le 24-08-2006 à 13:09:28  profilanswer
 

lepaysdu sucre a écrit :

Ca marche tres bien sauf qu apres je met ca ds un CString


Pas du C. Mauvais forum. (C++, c'est la porte d'à-coté).
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1430605
Emmanuel D​elahaye
C is a sharp tool
Posté le 24-08-2006 à 13:10:37  profilanswer
 

skelter a écrit :

"rt" -> lecture texte


Pas standard. C'est "r".


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1430606
Emmanuel D​elahaye
C is a sharp tool
Posté le 24-08-2006 à 13:12:12  profilanswer
 

lepaysdu sucre a écrit :

ca change toujours rien quand je met "rt" et que j utilise fget j ai toujours ce caractere carre.


Il faut supprimmer le \n. Sujet épuisé. Lire la FAQ du C :
 
http://docs.mandragor.org/files/Pr [...] lc_faq_fr/
 
ou ceci :  
 
http://mapage.noos.fr/emdel/notes.htm#saise
http://mapage.noos.fr/emdel/notes.htm#fichiers


Message édité par Emmanuel Delahaye le 24-08-2006 à 13:15:11

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/

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

  Lire une ligne d'un fichier

 

Sujets relatifs
Empecher une ligne d'être modifiée/suppriméeLire ligne précédente d'un fichier
Lire un fichier ligne par ligne.comment faire pour lire une ligne dans un fichier avec une commande D
comment lire une ligne dans un fichier text pour l'utiliser dansLire une ligne entière dans un fichier
lire 1 ligne d'un fichier texte[batch] Lire un fichier et extraire une ligne
[C++] lire la ligne suivante dans un fichier avec fstreamPerl : Comment lire une ligne precise inscrite dans un fichier ...
Plus de sujets relatifs à : Lire une ligne d'un fichier


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