Bonjour à tous !
J'ai un problème avec fputc et fgetc...
Le but de mon programme est de ré-écrire un caractère dans un fichier, puis de lire le caractère suivant.
Mon problème est qu'au moment ou le programme lit le caractère suivant celui qu'il vient de modifier, il modifie aussi ce caractère qu'il est entrain de lire. (Donc non seulement fgetc retourne une valeur fausse, mais en plus il modifie mon fichier, ce que je ne veux certainement pas qu'il fasse...)
(En revanche, si j'utilise fputc tout seul, tout va très bien, et idem pour fgetc...)
Ce sera peut être plus clair avec un code...
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
30 1. # include <stdio.h> 2. # include <stdlib.h> 3. 4. main() 5. { 6. FILE* fichier = NULL; 7. 8. fichier = fopen("essai.txt", "r+"); 9. 10. fputc('F', fichier); 11. printf("caractere lu = %c\n", fgetc(fichier)); 12. 13. fclose(fichier); 14. }
Si dans mon fichier essai.txt j'avais marqué "essai", j'obtiens après exécution de ce code, un "F" à la place du "e" et un caractère bizarre (représenté sous le bloc-notes de Windows par un rectangle vide) à la place du premier "s". (Tout le reste est inchangé)
En bref, je suis un peu déconcerté par ce problème... Je viens donc ici solliciter votre aide ^^
Merci d'avance !
Partager