Pb fprintf, fscanf pour un fichier .txt
Bonjour à tous, voilà mon petit bout de code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #include <stdio.h>
#include <stdlib.h>
int main(void)
{
char car;
FILE *in;
in=fopen("essai.txt","r+");
fprintf(in,"%c",'O');
fprintf(in,"%c",'K');
fscanf(in,"%c",&car);
fclose(in);
return 1;
} |
Avant exécution mon fichier "essai.txt" contient "MARCHE PAS"
Après il contient des caractères carrées et ininterprétable.
Si je mets le fscanf en commentaire j'ai "OKRCHE PAS" au final (normal quoi).
Donc je comprends pas, je croyais que les fprintf et fscanf décalaient le pointeur "in" juste après ce qu'ils écrivaient ou lisaient, donc normalement mon fscanf devrait scanner le 'R' de "MARCHE PAS".
J'utilise le bloc note en mode ANSI et developpe avec Dev C++.
Merci d'avance...
Re: Pb fprintf, fscanf pour un fichier .txt
Citation:
Envoyé par GeekMéPaTrop
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #include <stdio.h>
#include <stdlib.h>
int main(void)
{
char car;
FILE *in;
in=fopen("essai.txt","r+");
fprintf(in,"%c",'O');
fprintf(in,"%c",'K');
fscanf(in,"%c",&car);
fclose(in);
return 1;
} |
- fopen() peut echouer. Il fait tester la valeur retournée. Si c'est NULL, problème...
- "r+" permet d'écrire par dessus un fichier existant.
Citation:
"r+" Open for reading and writing. The stream is positioned at the
beginning of the file.
C'est une manip assez dangereuse qui se termine souvent par la destruction du fichier. Tu veux faire quoi exactement ?
Citation:
Avant exécution mon fichier "essai.txt" contient "MARCHE PAS"
Après il contient des caractères carrées et ininterprétable.
Si je mets le fscanf en commentaire j'ai "OKRCHE PAS" au final (normal quoi).
Donc je comprends pas, je croyais que les fprintf et fscanf décalaient le pointeur "in" juste après ce qu'ils écrivaient ou lisaient, donc normalement mon fscanf devrait scanner le 'R' de "MARCHE PAS".
J'utilise le bloc note en mode ANSI et developpe avec Dev C++.
Pourquoi le bloc note ? L'éditeur integré de Dev-C++ ne te plait pas ?