Carregar arquivo binário usando o fstream
Estou tentando carregar o arquivo binário usandofstream
Da seguinte maneira:
#include <iostream>
#include <fstream>
#include <iterator>
#include <vector>
using namespace std;
int main()
{
basic_fstream<uint32_t> file( "somefile.dat", ios::in|ios::binary );
vector<uint32_t> buffer;
buffer.assign( istream_iterator<uint32_t, uint32_t>( file ), istream_iterator<uint32_t, uint32_t>() );
cout << buffer.size() << endl;
return 0;
}
Mas isso não funciona. No Ubuntu ele caiu comstd::bad_cast
exceção. No MSVC ++ 2008, apenas imprime 0.
Eu sei que eu poderia usarfile.read
para carregar o arquivo, mas eu quero usar iterador eoperator>>
para carregar partes do arquivo. Isso é possível?Por quê o código acima não funciona?