C++:读/写二进制文件。此代码中发生了什么?
C++: read/write binary files. What's happening in this code?
我一直在为无格式的I/O的概念而苦苦挣扎。我的课程教科书没有很好地解释它。它给出了小程序,但我不知道这里发生了什么。如果有人能向我解释,我将不胜感激
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main() {
const unsigned int size = 10;
int arr[size];
ifstream infile("small.ppm");
infile.read(reinterpret_cast<char *>(&arr), size * sizeof(arr[0]));
infile.close();
ofstream outfile("newfile.ppm");
outfile.write((char *)&arr, size * sizeof(arr[0]));
outfile.close();
}
read() 和 write() 函数到底做了什么。我知道他们必须将 (char *, buffer_size) 作为参数,但函数本身有什么作用?另外,一旦我使用 read() 读取数据,我该如何存储该数据并对其进行操作?
对不起,这是一个很长的问题。我已经为这个概念苦苦挣扎了一段时间。非常感谢您的帮助
但是函数本身有什么作用呢?
这些是将数据作为逐字节复制到二进制文件/从二进制文件写入/读取数据。
另外,一旦我使用 read() 读取数据,我该如何存储该数据并对其进行操作?
您已经存储了int arr[size];
.您可以使用该int
数组操作该数据。
陷阱:
如果该数据在其他计算机上序列化,则会注意到有关特定于计算机的int
表示形式的字节序问题。
相关文章:
- 此测试()中发生了什么意外过程?为什么总是覆盖 ch[0 1 2..]?
- 这C++代码中发生了什么C++(指数函数)
- 任何人都可以告诉我我的 C++ 代码出了什么问题?
- 哪种方式更快?究竟发生了什么,我们没有看到什么?
- 我正在将一个 std::string 传递给一个 boost 函数,该函数对该类型进行常量引用,但该值发生了变化
- c++问题:给一个变量赋值后,另一个变量发生了变化
- 代码占用了我输入的一半
- 从"LLONG_MAX 秒"构造 std::chrono::毫秒变量时发生了什么?
- 我无法找出我的代码出了什么问题
- 在此C 代码示例中发生了两次复制构造函数的调用
- 此迭代器代码中发生了什么?
- 有人可以解释一下这个unique_ptr代码发生了什么
- C++:读/写二进制文件。此代码中发生了什么?
- 有人可以解释一下这段代码中发生了什么吗?(数组)
- 下面的代码片段在发布版本中发生了什么?
- 编译android应用程序时本机代码(JNI)发生了什么
- 这段代码中发生了什么?(执行一个字符缓冲区)
- 在这段c++代码中发生了什么
- 这段代码发生了什么
- 在以下 trie 代码中发生了什么