bonjour,
je voudrai mettre le curseur de mon fichier au début
je fais comme ça
mais ça ne marche pas est se que vous pouvez m'aidez SVP ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part fseek(fichier, 0, SEEK_SET);
bonjour,
je voudrai mettre le curseur de mon fichier au début
je fais comme ça
mais ça ne marche pas est se que vous pouvez m'aidez SVP ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part fseek(fichier, 0, SEEK_SET);
Bonjour,
La fonction fseek est bien utilisée. Peux-tu nous montrer un peu plus de code pour voir si le problème ne vient pas d'une autre ligne ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 fseek(fichier, 0, SEEK_SET); do { fgets(ligneFichier, NB_BLOCS_LARGEUR * NB_BLOCS_HAUTEUR + 1, fichier); for (i = 0 ; i < NB_BLOCS_LARGEUR ; i++) { for (j = 0 ; j < NB_BLOCS_HAUTEUR ; j++) { switch (ligneFichier[(i * NB_BLOCS_LARGEUR) + j]) { case '0': niveau[j][i] = 0; break; case '1': niveau[j][i] = 1; break; case '2': niveau[j][i] = 2; break; case '3': niveau[j][i] = 3; break; case '4': niveau[j][i] = 4; break; } } }
As tu essayé de vérifier où se trouve ton curseur après le fseek avec la fonction ftell ?
prototype :
long ftell (FILE *stream);
Bonjour,
Que veut dire "ça ne marche pas" ?
Est-ce que tu as une erreur de segmentation? Est-ce que ça ne compile pas ? Est-ce que tu ne te retrouve pas à la bonne position dans ton fichier ?
Bref, comment vois-tu que ceci ne marche pas ?
que je mette
ou rien c'est la même chose
Code : Sélectionner tout - Visualiser dans une fenêtre à part fseek(fichier, 0, SEEK_SET);
mais quand je met
il m'affiche "Position courante du cuseur : 0
Code : Sélectionner tout - Visualiser dans une fenêtre à part printf ("Position courante du cuseur : %ld\n", ftell(fichier));
je veux lire le début du fichier mais quand je le lance ça ne lis pas le fichier au début.
Et puisqu'on est dans les questions bêtes :
- Est-ce que tu as au moins ouvert ton fichier ?
A priori oui, sinon ftell() renverrait « -1 ». À part cela,
- Que contient ton fichier ?
- Es-tu sûr que tu n'écrases pas ton fichier à l'ouverture à cause de mauvais flags (auquel cas il aurait une taille nulle) ?
- As-tu essayé de placer ftell() après fgets() ?
- Que valent NB_BLOCS_LARGEUR et NB_BLOCS_HAUTEUR ?
Tu veux pas ouvrir ton fichier avec l'option "r" et non "r+";
En effet, après cette ouverture, tu ne vas que le lire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part fichier = fopen("niveaux.lvl", "r");
Et en deuxième remarque, pour n'utilises-tu pas fread pour lire ton fichier ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part size_t realSize = fread (ligneFichier, NB_BLOCS_LARGEUR * NB_BLOCS_HAUTEUR + 1, 1, fichier );
ça y est je l'ai fais mais je crois bien que même avec qu'un fichier je ne sois pas capable de le faire donc je vais marqué résolu le message.
merci de votre aide.
Partager