Mon programme croit que c'est la fin du fichier alors que c'est juste l'octet 1A

Signaler
Messages postés
5
Date d'inscription
jeudi 26 juin 2003
Statut
Membre
Dernière intervention
26 juin 2003
-
Messages postés
77
Date d'inscription
lundi 15 avril 2002
Statut
Membre
Dernière intervention
16 juin 2004
-
Mon programme lit un fichier. Il croit que c'est la fin du fichier quand il rencontre l'octet 1A.
Comment faire pour qu'il puisse lire tout le fichier même avec l'octet 1A ?

7 réponses

Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
3
Comment tu sais qu'il croit que c'est la fin de ton fichier ?
:-p :sleepy) :shy) :sleepy) :-p
Messages postés
5
Date d'inscription
jeudi 26 juin 2003
Statut
Membre
Dernière intervention
26 juin 2003

Mon programme réécrit dans un autre programme ce qu'il a lu, alors je sais où il en était quand il a terminé.

soit j'essaye de lire après et ça me met toujours le même octet.
soit il y a EOF et ça quitte
Messages postés
77
Date d'inscription
lundi 15 avril 2002
Statut
Membre
Dernière intervention
16 juin 2004

Tu l'as ouvert en binaire?
Messages postés
5
Date d'inscription
jeudi 26 juin 2003
Statut
Membre
Dernière intervention
26 juin 2003

je l'ai ouvert avec openfile, je ne sais pas si c'est en binaire
je suis débutant en C/C++.
Messages postés
5
Date d'inscription
jeudi 26 juin 2003
Statut
Membre
Dernière intervention
26 juin 2003

voila un petit exemple:
#include <stdio.h>
#include

FILE *backup_crypte, *backup;
int buffer,buffer2;

main()
{
backup_crypte = fopen( "test.txt", "r" );
backup = fopen( "test2.txt", "w+" );
for( int i=0; i!= 10; i++ )
{
buffer = fgetc( backup_crypte );
fputc( buffer,backup);
}

return;
}

si le fichier test.txt contient l'octet 1A, le fichier test2.txt est une mauvaise copie
Messages postés
5
Date d'inscription
jeudi 26 juin 2003
Statut
Membre
Dernière intervention
26 juin 2003

Voila j'ai trouvé le bug, il fallait ouvrir le fichier en binaire, merci!

#include <stdio.h>
#include
#include <STDLIB.H>
#include <fcntl.h>

FILE *backup_crypte, *backup;
int buffer,buffer2;

void main(int argc, char* argv[])
{
_fmode=_O_BINARY;
backup_crypte = fopen( "test.txt", "r" );
backup = fopen( "test2.txt", "w+" );
for( int i=0; i!= 10; i++ )
{
buffer = fgetc( backup_crypte );
fputc( buffer,backup);
}

return;
}
Messages postés
77
Date d'inscription
lundi 15 avril 2002
Statut
Membre
Dernière intervention
16 juin 2004

De rien, c'est tout naturel !!!
Bon courage et bon dev,
<<-- H@ldwin -->>