5
Actuellement, j'ai un programme qui charge les données binaires dans un stringstream et Pases ensuite les données à un fstream comme ceci:Comment copier des données binaires d'un flux à un autre?
stringstream ss(stringstream::binary | stringstream::in | stringstream::out);
ss.write(data, 512); // Loads data into stream
// Uses a memory block to pass the data between the streams
char* memBlock = new char[512];
ss.read(memBlock, 512);
ofstream fout("someFile.bin", ios::binary);
fout.write(memBlock, 512); // Writes the data to a file
fout.close();
delete[] memBlock;
Ma question est: est-il une meilleure façon de transmettre les données binaires entre les flux?
isnt "opérateur <<" pour entrée formated? Je travaille avec des données binaires. – Fabi1816
@ Fabi1816: Il y a une surcharge pour 'streambuf' qui produit une sortie binaire. Cette surcharge est ici pour faire exactement ce que vous demandez ici. –
Ceci est fonctionnellement correct. J'ai trouvé que copier des données avec des flux C++ est 2-3 fois plus lent que d'utiliser les méthodes de style C affichées ci-dessus. À mon grand désagrément. – Stephen