Mon code est ci-dessous. Le tampon a les données mais fout2.write ne fait rien. Le fichier est créé et il est vide.
ofstream fout2(fname, ios::binary);
fout2.open(fname, ios::binary | ios::in | ios::out);
if (fout2.is_open()) {
//problem is here //write the buffer contents
fout2.write(rmsg.buffer, rmsg.length);
fout2.flush();
memset(rmsg.buffer, 0, sizeof(rmsg.buffer)); //clear the buffer
Si vous prévoyez d'effectuer à la fois des entrées et des sorties, comme l'implique votre utilisation de ios::in
, vous devez utiliser fstream
, pas ofstream
. Ensuite, vous devez passer tous les modes ouverts dans le constructeur et vous n'avez pas besoin d'appeler open()
.
fstream fout2(fname, ios::binary | ios::in | ios::out);
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots