5
Obecnie mam program, który wczytuje dane binarne do stringstream a następnie pases dane do fstream tak:Jak skopiować dane binarne z jednego strumienia do drugiego?
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;
Moje pytanie brzmi: czy jest lepszy sposób, aby przekazać dane binarne między strumieniami?
isnt "operator <<" dla wejścia Sformatowany? pracuję z danymi binarnymi. – Fabi1816
@ Fabi1816: Istnieje przeciążenie dla 'streambuf', które ma wyjście binarne. To przeciążenie jest tutaj, aby zrobić dokładnie to, o co tutaj prosisz. –
To jest poprawne funkcjonalnie. Zauważyłem, że kopiowanie danych strumieniami C++ jest 2-3 razy wolniejsze niż przy użyciu metod w stylu C zamieszczonych powyżej. Ku mojej irytacji. – Stephen