从c+;中的二进制文件中读取32位整数+; 我试图从C++中的二进制文件中读取32位整数。我的目标是获得类似于c#BinaryReader.ReadInt32()方法的东西。同样,这个c#方法读取一个4字节的有符号整数。我已经验证了我的输入文件是little endian,c#方法读取的前4个字节是0x0000001E(aka 30),这是正确的,我使用二进制编辑器对其进行了双重检查

从c+;中的二进制文件中读取32位整数+; 我试图从C++中的二进制文件中读取32位整数。我的目标是获得类似于c#BinaryReader.ReadInt32()方法的东西。同样,这个c#方法读取一个4字节的有符号整数。我已经验证了我的输入文件是little endian,c#方法读取的前4个字节是0x0000001E(aka 30),这是正确的,我使用二进制编辑器对其进行了双重检查,c#,c++,fstream,C#,C++,Fstream,我已经尝试按照答案进行操作,但我的代码似乎不起作用: std::fstream _inputStream(fname.c_str(), std::ios_base::binary | std::ios_base::in | std::ios::ate); if (!_inputStream.is_open()) { std::cout << "Error opening the file\n" << fname << "\n" << st

我已经尝试按照答案进行操作,但我的代码似乎不起作用:

std::fstream _inputStream(fname.c_str(), std::ios_base::binary | std::ios_base::in | std::ios::ate);

if (!_inputStream.is_open()) {
    std::cout << "Error opening the file\n" << fname << "\n" << std::endl;      
}

uint32_t a;
_inputStream.read(reinterpret_cast<char*>(&a), sizeof(a));
std::fstream(fname.c_str(),std::ios_base::binary | std::ios_base::in | std::ios::ate);
如果(!\u inputStream.is\u open()){

std::cout Remove:
std::ios::ate
-“打开后立即搜索到流的末尾”来源:_inputStream.read返回什么?@BiesiGrr-True,我没有看到抱歉。@RichardCritten谢谢!该死的复制粘贴…我已经在修补不同的数据类型…@RichardCritter,请用你的评论回答我的问题,这样我就可以选择它作为答案了!再次感谢。