开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
MSVS 2010
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
STL
问题(Question):
下面程式码总是没有完整的把档案读完印出来
喂入的资料(Input):
一个 (档案大小%4==0) 的二进制档案, 其中含有 0xFFFFFFFF 在 (位置%4==0) 的地方
预期的正确结果(Expected Output):
将档案内容完整印出
错误结果(Wrong Output):
程式码(Code):(请善用置底文网页, 记得排版)
std::basic_ifstream<unsigned int> file ("1.bin", std::ios::binary);
std::for_each (std::istreambuf_iterator<unsigned int> (file),
std::istreambuf_iterator<unsigned int>(),
[] (const unsigned int &value) {
std::cout << "0x" << std::setw (8) << std::setfill ('0') << std::hex
<< value << std::endl;
});
补充说明(Supplement):
看起来只要读到和 std::char_traits<unsigned int>().eof() 相同的值
0xffffffff
for_each 就会提前离开, 请问如何如何修正?