Lire des fichiers avec fscanf();

Haiti -  
 Haiti -
Hallu,

J'ai un fichier texte du type :
champ01,champ02,champ03, ...
champ11,champ12,champ13, ...
etc

Et certains champs peuvent être des descriptions dans avec des blancs ( ou espace ) à l'intérieur.

Le problème quand je lis mon fichier avec la fonction
fscanf(file_fp,"%s,%s,etc...\n",var1,var2);
La lecture formaté s'arrête dès le premier espace ou blanc trouvé et donc ne lit pas chaque ligne entièrement comme je le voudrais.
Comment peux ton lire des champs dans un fichier qui ont des espaces entre les séparateurs ?
A voir également:

6 réponses

Haiti
 
En fait il faut utiliser %[^,] comme format pour récupérer le début jusqu'à la première virgule.

Ca donne .

fscanf(fp," %[^,] ,%[^,] etc ...\n",var1 etc ... );
3
lasngc
 
Trouve le caractère http qui corespond à l'espace qui si je me souvient bien est %20 et remplace
0
lasngc
 
Je ne suis pas sur du résutat mais c'est possible que le problème vienne de là.

Un conseille évite les espace dans tes noms
0
constancias_remy@libertysurf.fr
 
C'est du langage C,

Le but est de lire aussi certains champ comme "Il fait beau"avec des espaces dans fscanf.
Exemple du fichier :

France,Nice,Il fait beau,25,
Espagne,Madrid, ....
etc ...

Apparemment la fonction fscanf s'arrete au premier espace trouvé et non la fin de la ligne
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lasngc
 
En expression régulière exemple en perl un g permet de lire en boucle tous les résultats.

Peut être existe t'il une fonction split comme en perl ou en php car c'est exactement ce que tu veux faire.

Sinon je csuis en train de chercher
0
fou2dodie Messages postés 606 Statut Membre 33
 
ne peut on pas avant le fscanf mettre un truc du genre
while not eof()//end of file
ou
while not eol()// end of line

LMCT

All I know is I’m in love 
with someone who loves me too. 
0