【发布时间】:2017-06-13 20:34:54
【问题描述】:
我打开了一个要写入的 ofstream 文件,我想写入一个无符号整数的 4 个字节。我希望 int 为零,所以我尝试这样做:
outFile.write((char*)&unsigned int(0), sizeof(unsigned int)); // Expression must be an lvalue
unsigned int a = 0;
outFile.write((char*)&a, sizeof(unsigned int)); // This works fine
我的理解是,像 unsigned int 这样的东西的生命周期直到该行的末尾,换句话说,被下一个分号破坏。 是通过预先创建本地来编写这样的东西的唯一方法吗?另外,我注意到 fstreams 采用 char 指针,我想知道在复制内容时是否需要谨慎,例如在二进制模式下,我希望它完全按照内存中的方式写入字节,但是例如,如果我有一个 unsigned int 255 它会按原样复制这个无符号整数位吗?在处理原始内存复制时,这不应该是一个空指针吗?
【问题讨论】: