Copier un fichier en binaire

NeoUmbrella Messages postés 117 Date d'inscription vendredi 5 novembre 2004 Statut Membre Dernière intervention 15 janvier 2013 - 23 févr. 2005 à 13:43
sebojolais Messages postés 2 Date d'inscription mardi 14 septembre 2004 Statut Membre Dernière intervention 24 février 2005 - 24 févr. 2005 à 17:34
Salut, j'ai une petite question :
lorsque je procède comme suit pour copier un fichier :

fp = fopen(exeS,"rb");
fp2 = fopen(exeD,"ab");

while(!feof(fp))
{
inBin = getw(fp);
cout << inBin;
putw(inBin,fp2);
}

fclose(fp);
fclose(fp2);

exeS etant le fichier que je veux copier et exeD le fichier de destination.
Je n'obitent pas la meme taille de fichier que j'ai au départ, le nouveau fichier a
octets en plus que le fichier source.
J'ai testé sur des fichiers .txt et j'ai l'impression que c'est du au caractères de
saut de ligne.
Quelqu'un saurait comment régler le problème ?

Merci
NeoUmbrella Corp.

1 réponse

sebojolais Messages postés 2 Date d'inscription mardi 14 septembre 2004 Statut Membre Dernière intervention 24 février 2005
24 févr. 2005 à 17:34
Tu veux copier des données binaires donc je te conseille d'utiliser plutot fread et fwrite comme suit:

fp = fopen(exeS,"rb");
fp2 = fopen(exeD,"wb");

do
{
float toto;
if(fread(&toto, sizeof(float),1,fp)!=1)
continue;
cout<<toto;
}while(fwrite(&toto, sizeof(float),1,fp2)==1)

fclose(fp);
fclose(fp2);

et voilà, ça doit marcher

SEBOJOLAIS
0
Rejoignez-nous