fscanf et les espaces .. ( vous vous doutez bien, je nage )

fscanf et les espaces .. ( vous vous doutez bien, je nage ) - C++ - Programmation

Marsh Posté le 21-06-2002 à 11:20:19    

Lorsque j'essaye de lire dans un fichier, a l'aide la fonction fscanf, il me retourne que lke premier mot ...
 
Comment faire pour qu'il retourne toiute la ligne, sachant que la ligne peut faire entre 150 et 200 caractères ..
 
Merci

Reply

Marsh Posté le 21-06-2002 à 11:20:19   

Reply

Marsh Posté le 21-06-2002 à 11:21:54    

fgets(chaine, taillemax, fichier)


Message édité par antp le 21-06-2002 à 11:22:16

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 21-06-2002 à 11:24:11    

antp a écrit a écrit :

fgets(chaine, taillemax, fichier)  




:( mais fgets il me renvoit qu'un bout de la ligne a chaque fois alors que taille max = 256  
 
???

Reply

Marsh Posté le 21-06-2002 à 11:26:01    

il ne s'arrête qu'aux fins de lignes normalement...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 21-06-2002 à 11:29:23    

sinon si t'as un truc du style champ1 champ2 champ3
 
Il me semble que tu peux faire un fscanf(.. "%s %s %s", champ1, ...


---------------
Super.
Reply

Marsh Posté le 21-06-2002 à 11:29:50    

Il s'arr^^ete a la nouvelle ...
 
Je viens de tester ..
 
Je récupere la premiere ligne .. puis je fais un strcmp de ce que j'ai pris avec fgets et une chaine de caractere ..
 
Les deux chaines sont identiques .. mais le fgets rajoute le '\n' à la fin de la chaine ..
 
Ce qui fait que mon strcmp tombe a l'eau

Reply

Marsh Posté le 21-06-2002 à 11:31:29    

paranoidandroid a écrit a écrit :

Il s'arr^^ete a la nouvelle ...
 
Je viens de tester ..
 
Je récupere la premiere ligne .. puis je fais un strcmp de ce que j'ai pris avec fgets et une chaine de caractere ..
 
Les deux chaines sont identiques .. mais le fgets rajoute le '\n' à la fin de la chaine ..
 
Ce qui fait que mon strcmp tombe a l'eau  




ta_prem_ligne[strlen(ta_prem_ligne)]='\0'; puis strcmp

Reply

Marsh Posté le 21-06-2002 à 11:33:15    

Godbout a écrit a écrit :

sinon si t'as un truc du style champ1 champ2 champ3
 
Il me semble que tu peux faire un fscanf(.. "%s %s %s", champ1, ...  




 
J'y avais pensé .. mais mon fichier n'est pas du tout structuré .. Je ne sais pas combien de mots il peux y avoir ..
 
 
 
 
Mais remarque je m'en fous .. puisque seulment les premiers mots m'intéressent ... oula j'ai du mal ce matin

Reply

Marsh Posté le 21-06-2002 à 11:33:24    

prettysmile a écrit a écrit :

 
ta_prem_ligne[strlen(ta_prem_ligne)]='\0'; puis strcmp  




tu as toujours réponse à tout ma belle :love:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 21-06-2002 à 11:34:12    

[:ddr555]  
 
Si c'est pas structure effectivement c'est chiant.
Moi j'avais un fichier a parser, ben j'utilise fgets pour recuperer la ligne et apres je fais un sscanf sur le ligne.


---------------
Super.
Reply

Marsh Posté le 21-06-2002 à 11:34:12   

Reply

Marsh Posté le 21-06-2002 à 11:34:59    

Harkonnen a écrit a écrit :

 
tu as toujours réponse à tout ma belle :love:  




 :love:  ça sentait le vécu: les strings et moi, c'est une longue histoire

Reply

Marsh Posté le 21-06-2002 à 11:36:14    

prettysmile a écrit a écrit :

 
ta_prem_ligne[strlen(ta_prem_ligne)]='\0'; puis strcmp  




Code :
  1. posRetour = strchr(temp,'\n');
  2.    temp[posRetour] = '\0';

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed