Lire des fichiers avec fscanf();
Haiti
-
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 ?
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 ?
6 réponses
-
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 ... ); -
Trouve le caractère http qui corespond à l'espace qui si je me souvient bien est %20 et remplace
-
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 -
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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 -
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.