#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)のみが得られます。
使用istreambuf_iterator<short>
すると私が望むものが得られると思いましたが、「無効な変換」エラーがスローされます。
範囲内のバイナリ値を読み取るにはどうすればよいshort
ですか?