我試圖以下列方式使用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>>
加載文件的某些部分。那可能嗎? 爲什麼上面的代碼不起作用?
什麼是源說二進制數據? – NoMoreZealots 2009-07-21 16:06:07
二進制數據可能是圖像或類似的東西。 – 2009-07-21 16:49:21