Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Lire 3 variables entières avec fscanf

2 réponses
Avatar
jb07
'soir à tous,

Problème de débutant, simplissime. Je cherche à lire des lignes de trois
entiers issus d'un fichier au format CSV formaté comme suit:

234,244,344,

Je fais donc un fscanf(mon_fichier, "%d,%d,%d,\n", &var1, &var2, &var3) qui
me retourne "3" à chaque appel, ce qui est plutôt bon signe. Sauf que les
variables var2 et var3 contiennent toujours 0 (les variables utilisées sont
toutes des "unsigned short")

Enervant.

Compilateur gcc (GCC) 4.1.1 20060525 (Red Hat 4.1.1-1)

Si quelqu'un a une idée...

--
En direct de Sarralbe / 57

2 réponses

Avatar
jb07
jb07 wrote:

'soir à tous,

Problème de débutant, simplissime. Je cherche à lire des lignes de trois
entiers issus d'un fichier au format CSV formaté comme suit:

234,244,344,

Je fais donc un fscanf(mon_fichier, "%d,%d,%d,n", &var1, &var2, &var3)
qui me retourne "3" à chaque appel, ce qui est plutôt bon signe. Sauf que
les variables var2 et var3 contiennent toujours 0 (les variables utilisées
sont toutes des "unsigned short")


Bon ben je me réponds à moi-même :

il faut faire un fscanf(mon_fichier, "%hd,%hd,%hd,n", &var1, &var2, &var3)

Parce que ça écrit dans des "short" et pas des "int" !

C'était dans le manuel, mais le terme de conversion de type "dioux" m'a
conduit à ignorer bêtement l'attribut 'h'...

--
En direct de Sarralbe / 57

Avatar
Marc Boyer
Le 28-08-2006, jb07 a écrit :
jb07 wrote:

'soir à tous,

Problème de débutant, simplissime. Je cherche à lire des lignes de trois
entiers issus d'un fichier au format CSV formaté comme suit:

234,244,344,

Je fais donc un fscanf(mon_fichier, "%d,%d,%d,n", &var1, &var2, &var3)
qui me retourne "3" à chaque appel, ce qui est plutôt bon signe. Sauf que
les variables var2 et var3 contiennent toujours 0 (les variables utilisées
sont toutes des "unsigned short")


Bon ben je me réponds à moi-même :

il faut faire un fscanf(mon_fichier, "%hd,%hd,%hd,n", &var1, &var2, &var3)

Parce que ça écrit dans des "short" et pas des "int" !

C'était dans le manuel, mais le terme de conversion de type "dioux" m'a
conduit à ignorer bêtement l'attribut 'h'...


Et ton compilateur ne t'a rien signalé ? Peut-être serait-il utile
d'augmenter le niveau d'avertissement, non ?

Marc Boyer
--
Si tu peux supporter d'entendre tes paroles
Travesties par des gueux pour exciter des sots
IF -- Rudyard Kipling (Trad. Paul Éluard)