Загрузите бинарный файл, используя fstream
Я пытаюсь загрузить двоичный файл, используяfstream
следующим образом:
#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;
}
Но это не работает. В Ubuntu он разбился сstd::bad_cast
исключение. В MSVC ++ 2008 он просто печатает 0.
Я знаю, что я мог бы использоватьfile.read
загрузить файл, но я хочу использовать итератор иoperator>>
загрузить части файла. Это возможно?Why приведенный выше код не работает?