我想知道为什么我不能使用>>an 的运算符std::ifstream从二进制文件中读取unsigned int.
#include <fstream>
int main(int argc, char* argv[])
{
std::ifstream in(argv[1]);
if(in.fail())
return -1;
unsigned int atom_size = 0;
in.read(reinterpret_cast<char*>(&atom_size), 4);
in >> atom_size;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我使用时,in.read我得到了我想要的值,但是当我使用>>运算符时,我的atom_size变量不会改变.为什么?
显然你正在读一个二进制文件.该read命令从文件中将请求的数字字节复制到您提供的指针所指示的内存中.该>>运营商希望找到ASCII文本转换成整数.这两个操作简直不一样.
| 归档时间: |
|
| 查看次数: |
210 次 |
| 最近记录: |