OVH Cloud OVH Cloud

Ajout de "OA" en hexa à chaque occurrence de "OD"

2 réponses
Avatar
Romain
Bonjour,

J'ai un probl=E8me en essayant d'=E9crire des nombres dans un fichier
ouvert en mode binaire.
A chaque fois que le nombre 10 (0A en hex) est =E9crit, le nombre 13
soit 0D en hexa, est =E9crit =E0 la suite.
0A et 0D correspondent =E0 un carriage return et line feed. J'ai donc
autant d'octets en trop que de nombre 10 dans le fichier.


Je sais que ce probl=E8me ce produit lorsque le fichier de sortie n'est
pas ouvert en mode binaire. Ce n'est pas le cas de mon exemple
ci-dessous.

Je compile sous VC++.NET

Merci d'avance pour votre aide.

Ctest2App::Ctest2App()
{
// TODO : ajoutez ici du code de construction,
// Placez toutes les initialisations significatives dans InitInstance

long i;
long Size=3D10;
LONG len=3D1;

ofstream *BinFile; // The acq file streams
PUCHAR *buf =3Dnew PUCHAR[Size];
BinFile =3D new ofstream("out.bin");


for (i =3D0; i < Size; i++) {
buf[i] =3D new UCHAR[len];
buf[i][0]=3D10;
}
for (i =3D0; i < Size; i++) BinFile->write((char *) buf[i], len);=20
}

2 réponses

Avatar
Loïc Joly
Romain wrote:
[...]
Je sais que ce problème ce produit lorsque le fichier de sortie n'est
pas ouvert en mode binaire. Ce n'est pas le cas de mon exemple
ci-dessous.


[...]

BinFile = new ofstream("out.bin");


Où vois-tu que ce fichier est ouvert en binaire ?

--
Loïc

Avatar
drkm
"Romain" writes:

J'ai un problème en essayant d'écrire des nombres dans un fichier
ouvert en mode binaire.
A chaque fois que le nombre 10 (0A en hex) est écrit, le nombre 13
soit 0D en hexa, est écrit à la suite.
0A et 0D correspondent à un carriage return et line feed. J'ai donc
autant d'octets en trop que de nombre 10 dans le fichier.

Je sais que ce problème ce produit lorsque le fichier de sortie n'est
pas ouvert en mode binaire. Ce n'est pas le cas de mon exemple
ci-dessous.


Si tu écris, en mode texte, un caractère 'n' (sous forme de
constante de caractère ou sous forme numérique), l'implémentation peut
en effet écrire effectivement autre chose, selon les conventions de la
plate-forme.

--drkm