Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

Il y a 75 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

comment trouver la fin d'un fichier en C/C++, avec fscanf() ?

 
n°11184
corder
Profil : Jeune recrue
Posté le 20-01-2005 à 16:57:52  profilanswer
 

je voudrais savoir de la meme maniere qu'avec getc():
 
char c;
FILE *file;
....
c=getc(file);
if (c==EOF)
...
 
que getc() renvoi "EOF" en cas de fin de fichier si il est possible d'arriver a la meme chose avec fscanf().
mon but est de chercher un mot precis dans un fichier texte, mais il est possible qu'il ne s'y trouve pas. il me faut donc une condition de fin de fichier.
 
recherche d'un mot :
 
char comp[30], CHAMPS[30];
FILE *file;
....
do fscanf(file,"%s",CHAMPS);
while ((strcmp(CHAMPS ,comp))!=0);
....
 
merci de votre attention, j'espere que vous pourrez m'aider.
 
 :)

n°11187
myst
nono powered ©
Profil : Vieux de la vieille
Posté le 20-01-2005 à 18:54:02  profilanswer
 

bah ca renvoi EOF aussi non ? :spamafote:


---------------
Fondateur de la CuRseD TeAm
n°11207
hugsy_75
Grand Gaou du Pengouin
Profil : Membre
Posté le 21-01-2005 à 21:21:13  profilanswer
 

je ne pense pas que cela soit possible, fscanf ne peut pas détecter la fin de ton fichier. a ta place, j essayerais un code du genre (je garantis la réussite du 1er coup  ;)  )

Code :
  1. while ((file=fopen(file,"r" ))=!EOF) {
  2.     fscanf (file,"%s",champs);
  3.     if (champs==comp) break;
  4. }


 
voila dis moi si ca marche ;)  
 
 :hello:


---------------
"A vaincre sans péril, on triomphe sans gloire." - Corneille, Le Cid
n°11212
hoover
Mode Thermique
Profil : Membre
Posté le 22-01-2005 à 13:44:14  profilanswer
 

Code :
  1. while ( (fscanf(file,"%s", buf) != EOF) && (strcmp(buf,comp) != 0) )
  2.        ;


Message édité par hoover le 22-01-2005 à 13:45:38
n°11215
P-Y
Intermittent du troll
Profil : Vieux de la vieille
Posté le 22-01-2005 à 14:08:44  profilanswer
 

fscanf renvoie 0 quand il n'a pas pu matcher d'element, donc tu testes que fscanf renvoir tjs une valeur > 0, quand il renvoie 0 c'est soit qu'il y a une ligne vide soit que t'es en fin de fichier ;)


Aller à :
Ajouter une réponse