#include <iostream>
#include <fstream>
#include <iterator>
#include <vector>
int main()
{
std::ifstream file("data.bin", std::ios::binary );
if( file.fail() )
{
std::cout << "File does not exist or could not open file";
return 0;
}
std::vector<short> buffer;
std::copy(
std::istreambuf_iterator<char>( file ),
std::istreambuf_iterator<char>(),
std::back_inserter( buffer )
);
return 0;
}
这只会给我 char 值的范围(-128、128)。
我认为 usingistreambuf_iterator<short>
会给我我想要的东西,但它会引发“无效转换”错误。
我该怎么做才能读取short
范围内的二进制值?