2 fscanf qui ne retournent pas la même chose sous Unix et Windows
Bonjour,
Voici un extrait de mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
FILE* fe = fopen ("notes.txt", "rt");
float notes [4];
if (fe == NULL) {
printf ("\nErreur d'ouverture du fichier des notes.\n");
exit (0);
} else {
while ( !feof (fe) ) {
char nomRech [6] ;
char mdpRech [6] ;
short numRech;
fscanf (fe,"%d %6s %6s %f %f %f %f", &numRech, nomRech, mdpRech, ¬es[0], ¬es[1], ¬es[2], ¬es[3]);
printf ("%d %s %s %.2f %.2f %.2f %.2f\n", numRech, nomRech, mdpRech, notes[0], notes[1], notes[2], notes[3]);
exit(1);
}
} |
Mon fichier .txt est de la forme :
01 NOM passwd 18 9.25 13 14.7
Sous Windows, le printf me donne bien :
01 NOM passwd 18.00 9.25 13.00 14.70
Mais avec Ubuntu, le même code ne retrouve pas la 1ere chaîne de caractères, et me sort donc :
01 passwd 18.00 9.25 13.00 14.70
(je compile à chaque fois avec GNU-GCC)
Si quelqu'un pouvait m'expliquer ce qui se passe...
Merci d'avance :-)