gpt4 book ai didi

c++ - 从文件中读取字节到短/长整数

转载 作者:搜寻专家 更新时间:2023-10-31 01:51:15 25 4
gpt4 key购买 nike

大家好!我正在尝试读取文件的前 4 个字节并将它们存储在整数变量中。这是我正在做的:

#include <iostream>
#include <fstream>
#include <iomanip>
#include <cstring>

using namespace std;

int main(){
ifstream is;
is.open ("binary_file.dat", ios::binary );
char file_version[4];
is.read(file_version, 4);
int fv_int;
memcpy(&fv_int, file_version, sizeof(fv_int));
cout << fv_int;
}

但是结果并不是我想的那样。程序将文件的第一个字节复制到正确的位置,但将其余字节视为 0。示例:

我文件的前 4 个字节:

10101010 00101100 00101100 00101100

程序执行后fv_int的内容是什么:

10101010 00000000 00000000 00000000

有什么方法可以访问整数的特定字节吗?或者从文件中读取字节的更好方法?

最佳答案

istream::read 不正好读取 4 个字节,它返回读取的字节数。检查返回值,你的文件可能太短了

补充提示:你可以做 is.read(reinterpret_cast<char*>(&fv_int), size_of(fv_int));减少代码量并增加冗长

关于c++ - 从文件中读取字节到短/长整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14025280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com