读取二进制文件并解释为整数
Reading a binary file and interpret as integers
我试图将二进制文件解释为一系列整数并将值读取到向量。 但是,行 ifs>> n;总是返回 0 和 eof 总是假的,文件位置不会更新。 如果我将类型更改为 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;
}
输入运算符>>
读取输入并将其解释为文本。
如果文件包含原始二进制数据,则还需要作为原始数据读取:
int value;
while (ifs.read(reinterpret_cast<char*>(&value), sizeof value))
content.push_back(value);
请记住,像这样存储原始二进制数据是不便携的,并且确实不建议这样做。
相关文章:
- 如何反转整数参数包
- enum是C++中的宏变量还是整数变量
- 努力将整数转换为链表。不知道我在这里做错了什么
- 整数不会重复超过随机数
- 在C++中手动调整数组大小
- 检查输入是否不是整数或数字
- C++使用整数的压缩数组初始化对象
- 内联程序集printf将整数解释为地址
- 如果整数与指针大小相同,则重新解释将整数转换为指针双射是否具有双射作用?
- 读取二进制文件并解释为整数
- 野牛/flex:计算器将双精度值解释为整数,所以我添加了 YYSTYPE 双精度 #define 但我有多个编译错误
- 如何在 c++ 中解释对长整数的操作
- 将整数解释为字节数组的安全性
- 有人可以解释为什么以下代码中的总数 = 7 吗?使用静态整数和
- 解释为 4 个字节的两个整数之间的计算范数
- C和C 中的整数类型及其用PrintF进行解释
- 使用boost multiprecision/mpfr float-字符串不能被解释为有效的整数错误
- 解释当整数作为输入时输出
- c++中基本的整数解释
- std::min未能将枚举常量解释为有效的整数类型(g++4.6.3)