zatox
Messages postés641Date d'inscriptionsamedi 17 février 2007StatutMembreDernière intervention26 juin 2020
-
25 févr. 2013 à 17:03
Bonjour, j'essaie d'apprendre le C mais j'ai quelques soucis, en particulier sur la lecture d'un fichier texte. J'ai l'impression qu'il faudrait que je fasse 2 fgets l'un derrière l'autre pour avoir ce que je veux mais je voudrais comprendre pourquoi !!
Ci-dessous je mets la partie de code concerné, le contenu du fichier que je lis et l'affichage des différents messages prévu dans mon code:
D'ABORD LE CODE
int chargerNiveau(int niveau[][NB_BLOCS_HAUTEUR])
{
FILE *f = fopen("log.txt", "a");
fprintf (f, "\n\n\n******************************************");
fprintf (f, "\nRentré dans la fonction chargerNiveau ");
int extern numero_ligne_niveaux;
/*int extern nombre_enreg_niveaux;*/
FILE* fichier = NULL;
char ligneFichier[NB_BLOCS_LARGEUR * NB_BLOCS_HAUTEUR + 1] = {0};
int i = 0, j = 0, k = 0;
fichier = fopen("niveaux.lvl", "r");
if (fichier == NULL)
return 0;
ENFIN POUR FINIR L'AFFICHAGE LIE AUX DIFFERENTS fprintf DE MON CODE
******************************************
Rentré dans la fonction chargerNiveau
k = 0
numero_ligne_niveaux = 1
Buffer de ficher =
<111111111111111111111111111111111111111111111111111111111111114200000311111111111111111111111111111111111111111111111111111111111111111111111111>
Voici les niveaux:
<111111111111111111111111111111111111111111111111111111111111114200000311111111111111111111111111111111111111111111111111111111111111111111111111>
Fin les niveaux:
******************************************
Rentré dans la fonction chargerNiveau
k = 0
numero_ligne_niveaux = 2
Buffer de ficher =
<111111111111111111111111111111111111111111111111111111111111114200000311111111111111111111111111111111111111111111111111111111111111111111111111>
Buffer de ficher =
<
>
Voici les niveaux:
<000111111111111111111111111111111111111111111111111111111111114200000311111111111111111111111111111111111111111111111111111111111111111111111111>
Fin les niveaux:
******************************************
Rentré dans la fonction chargerNiveau
k = 0
numero_ligne_niveaux = 3
Buffer de ficher =
<111111111111111111111111111111111111111111111111111111111111114200000311111111111111111111111111111111111111111111111111111111111111111111111111>
Buffer de ficher =
<
>
Buffer de ficher =
<111111111111111111111111111111111111111400001111111111221111111111001111111111001111111111031111111111011111111111011111111111311111111111111111>
Voici les niveaux:
<111111111111111111111111111111111111111400001111111111221111111111001111111111001111111111031111111111011111111111011111111111311111111111111111>
Fin les niveaux:
Voilà, je ne comprends pas pourquoi au deuxième fgets le buffer de fichier est vide !!!!
Si quelqu'un a une idée ?
Merci pour vos réponses.