我碰到读二进制文件到无符号字符的载体和测试问题讨论的代码。
感兴趣的代码如下:
typedef unsigned char BYTE;
std::ifstream file(filename, std::ios::binary);
file.unsetf(std::ios::skipws);
std::vector<BYTE> vec;
vec.insert(vec.begin(),
std::istream_iterator<BYTE>(file),
std::istream_iterator<BYTE>());
据本杰明·林德利的在回答为什么的std :: istream_iterator忽略换行符? , istream::operator>>(char)
跳过空格。 但上述类型是unsigned char
,该文件与打开std::binary
。
为什么代码需要显式调用file.unsetf(std::ios::skipws)
或交替, file >> std::noskipws)