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

MarcPlouhinec Messages postés 5 Date d'inscription jeudi 26 juin 2003 Statut Membre Dernière intervention 26 juin 2003 - 26 juin 2003 à 11:22
Haldwin Messages postés 77 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 16 juin 2004 - 26 juin 2003 à 14:14
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

cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
26 juin 2003 à 11:28
Comment tu sais qu'il croit que c'est la fin de ton fichier ?
:-p :sleepy) :shy) :sleepy) :-p
0
MarcPlouhinec Messages postés 5 Date d'inscription jeudi 26 juin 2003 Statut Membre Dernière intervention 26 juin 2003
26 juin 2003 à 11:35
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
0
Haldwin Messages postés 77 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 16 juin 2004
26 juin 2003 à 12:08
Tu l'as ouvert en binaire?
0
MarcPlouhinec Messages postés 5 Date d'inscription jeudi 26 juin 2003 Statut Membre Dernière intervention 26 juin 2003
26 juin 2003 à 12:11
je l'ai ouvert avec openfile, je ne sais pas si c'est en binaire
je suis débutant en C/C++.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MarcPlouhinec Messages postés 5 Date d'inscription jeudi 26 juin 2003 Statut Membre Dernière intervention 26 juin 2003
26 juin 2003 à 13:20
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
0
MarcPlouhinec Messages postés 5 Date d'inscription jeudi 26 juin 2003 Statut Membre Dernière intervention 26 juin 2003
26 juin 2003 à 13:48
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;
}
0
Haldwin Messages postés 77 Date d'inscription lundi 15 avril 2002 Statut Membre Dernière intervention 16 juin 2004
26 juin 2003 à 14:14
De rien, c'est tout naturel !!!
Bon courage et bon dev,
<<-- H@ldwin -->>
0
Rejoignez-nous