j'ai un fichier qui contient plusieurs elements par ligne
par exemple
arg11 arg12 arg13 arg14 arg15
arg21 arg22 arg23 arg24 arg25
...
etc
j'aimerais pouvoir analyser un part un chaque argument, jusqu'a present j'utilise fgets pour recuperer ligne par ligne, ensuite le programme analyse chaque ligne
n'y a t-il pas moyen de recuperer directement chaque argument ? il me semble que la fonction fscanf le permettrais mais je n'arrive pas a m'en servir, ni a comprendre vraiment comment elle fonctionne
la vache je nage
a chaque appel de fscanf on passe a la ligne automatiquement ?
Link Le 15/10/2006 à 00:05 si tu fais tes lectures avec fgets(), tu peux toujours tenter un sscanf() sur les lignes lues...

Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.
ok, je garde ça sous la main, si je fscanf ne me satisfait pas
comment sont gerées les lignes dans un fichier texte, il y a un marqueur de fin de ligne a chaque fois ?
si je fais 3 appels de fscanf ("%s%s%s%s%s",arg1, arg2, arg3, arg4, arg5);
A chaque fois le fscanf traduit une ligne suivante ? ou il reste sur la même ligne tant qu'il ne la pas toute parcourue ?
Link Le 15/10/2006 à 11:36 Il reste sur la même ligne tant qu'il ne l'a pas parcourue.
fgets() fait la même chose, d'ailleurs, c'est pourquoi il est d'usage de vérifier si fgets() a récupéré une ligne complète ou non, en vérifiant s'il y a ou non un \n dans la chaîne...

Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.
en fait pour fgets je lui demande de parcourir une ligne entiere, definie selon un nbre de caractere
je crois que je vais utiliser fgets et scanf alors, ça va simplifier la suite du programme
Link Le 15/10/2006 à 16:21 C'est sscanf() qui s'utilise avec fgets().

Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.
Mais ça n'a aucun intérêt par rapport à fscanf directement. A part être plus lent.