gpt4 book ai didi

c++ - 读取二进制文件并解释为整数

转载 作者:太空宇宙 更新时间:2023-11-03 17:24:29 26 4
gpt4 key购买 nike

我正在尝试将二进制文件解释为一系列整数并将值读取到 vector 中。然而,行 ifs >> n; 始终返回 0 且 eof 始终为 false,文件位置未更新。如果我将类型更改为 char 它可以工作,但这不是想要实现的目标。我怎样才能让代码按我想要的方式工作?

int readAsNumber(const char* fileName, vector <int> &content)
{
ifstream ifs;
int n;

ifs.open(fileName, ifstream::in | ifstream::binary);
while (ifs.eof() == false) // Never terminates
{
ifs >> n; // Always sets n = 0
content.push_back(n); // Saves 0
}
ifs.close();
return 0;
}

最佳答案

输入运算符 >>> 读取输入并将其解释为文本

如果文件包含原始二进制数据,您需要 read也作为原始数据:

int value;
while (ifs.read(reinterpret_cast<char*>(&value), sizeof value))
content.push_back(value);

请记住,像这样存储原始二进制数据是不可移植的,确实不推荐。

关于c++ - 读取二进制文件并解释为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59718584/

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