Lire dans un fichier text

Signaler
Messages postés
54
Date d'inscription
vendredi 22 octobre 2004
Statut
Membre
Dernière intervention
21 novembre 2008
-
Messages postés
54
Date d'inscription
vendredi 22 octobre 2004
Statut
Membre
Dernière intervention
21 novembre 2008
-
Je programme sous Visual C++. J'aimerais lire dans un fichier texte une serie de caracteres pour pouvoir la comparrer avec une reference. Pour cela j'aimerais utiliser une fonction du style fread(), mais le probleme c'est qu'avec fread() je lis n caracteres, puis les n suivants. Moi j'aimerais lire les caracteres par n, a partir du caractere n°1 puis 2, 3, ...
Pour l'instant ce que je fais, je mets le fichier text dans un char et je fait moi meme glisser un curseur at je comparre les n carracteres avec un temoin. Mais je trouve cette solution lourde.

3 réponses

Messages postés
402
Date d'inscription
mardi 1 mai 2001
Statut
Membre
Dernière intervention
15 août 2011

Comparer/Lire les caractères un à un? Il y à getc() mais, tu devrais plutôt utiliser un buffer(tampon), genre: char buffer[_BUFSIZE_]; ca serait beaucoup plus rapide pour les lectures/comparaisons ...

Si je n'ai pas répondu à ta question, c'est que je n'ai rien compris :} désolé ...

~(.:: NitRic ::.)~
Messages postés
1
Date d'inscription
dimanche 16 février 2003
Statut
Membre
Dernière intervention
27 mars 2005

Qd tu lis les n premiers caracteres avec fread tu decales le curseur dans le fichier (desolé c peut-etre pa tres claire).

Ainsi tu peux le repositionner a chaque fois que tu utilise fread avec la fonction fseek



/* lit les n premiers caracteres a partir du premier */

fread(ptr, size, n, stream);



/* lit les n premiers caracteres a partir du deuxieme */

fseek(stream, 1, SEEK_SET);

fread(ptr, size, n, stream);



/* lit les n premiers caracteres a partir du troisieme */


fseek(stream, 2, SEEK_SET);


fread(ptr, size, n, stream);



....

En esperant avoir repondu a ta question...
Messages postés
54
Date d'inscription
vendredi 22 octobre 2004
Statut
Membre
Dernière intervention
21 novembre 2008

Oui tu viens de repondre a ma question
Merci beaucoup