Lire une ligne d'un fichier - C - Programmation
Marsh Posté le 23-08-2006 à 17:54:25
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().
Marsh Posté le 23-08-2006 à 17:57:51
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.
Marsh Posté le 23-08-2006 à 18:03:47
Renseigne toi donc sur les caracteres de fin de chaine, regarde ce qu'il y a dans ta chaine obtenue par le fgets
Marsh Posté le 23-08-2006 à 18:08:13
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
Marsh Posté le 23-08-2006 à 18:11:32
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 ?
Marsh Posté le 23-08-2006 à 18:21:39
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?
Marsh Posté le 23-08-2006 à 18:25:03
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 ?
Marsh Posté le 23-08-2006 à 18:38:10
ca change toujours rien quand je met "rt" et que j utilise fget j ai toujours ce caractere carre.
Marsh Posté le 23-08-2006 à 20:42:10
alors ca vient de ton fichier, sinon montre ton fichier et le code
Marsh Posté le 24-08-2006 à 13:09:28
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é).
Marsh Posté le 24-08-2006 à 13:10:37
skelter a écrit : "rt" -> lecture texte |
Pas standard. C'est "r".
Marsh Posté le 24-08-2006 à 13:12:12
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
Marsh Posté le 23-08-2006 à 17:39:34
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