创建一个文件并用零填充:
dd if=/dev/zero of=/tmp/zeroes count=1
编写这个小程序,以提取它在文件中遇到的第一个无符号整数。
#include <assert.h>
#include <fstream>
int main()
{
std::ifstream reader( "/tmp/zeroes", std::ios_base::binary );
uint32_t number;
reader >> number;
assert( !reader.fail() );
}
为什么断言被触发?
答案 0 :(得分:8)
因为/dev/zero
提供二进制零,而不是字符
'0'
和>>
执行(或尝试执行)文本转换。