C++ C++;:读/写二进制文件。什么';代码中发生了什么?
我一直在努力解决无格式I/O的概念。我的课程教科书没有很好地解释它。它给出了一个小程序,但我不知道这里发生了什么。如果有人能给我解释一下,我将不胜感激C++ C++;:读/写二进制文件。什么';代码中发生了什么?,c++,casting,io,binaryfiles,C++,Casting,Io,Binaryfiles,我一直在努力解决无格式I/O的概念。我的课程教科书没有很好地解释它。它给出了一个小程序,但我不知道这里发生了什么。如果有人能给我解释一下,我将不胜感激 #include <iostream> #include <string> #include <fstream> using namespace std; int main() { const unsigned int size = 10; int
#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();
}
#包括
#包括
#包括
使用名称空间std;
int main(){
常量无符号整数大小=10;
int arr[尺寸];
ifstream infle(“小ppm”);
填充读取(重新解释铸件(&arr),尺寸*尺寸(arr[0]);
infle.close();
流出流文件(“newfile.ppm”);
outfile.write((char*)&arr,size*sizeof(arr[0]);
outfile.close();
}
read()和write()函数的具体功能是什么。我知道他们必须
接受(char*,buffer_size)作为参数,但是函数本身做什么呢?
另外,一旦我用read()读入数据,我如何存储该数据并对其进行操作
很抱歉,这是一个很长的问题。我已经为这个概念挣扎了一段时间了。非常感谢你的帮助
但是函数本身做什么呢
它们是将数据作为逐字节副本写入/读取二进制文件
另外,一旦我用read()读入数据,我如何存储该数据并对其进行操作
您已经存储了int arr[size]代码>。您可以使用int
数组操作该数据
陷阱:
如果该数据是在另一台机器上序列化的,您将注意到与特定于机器的int
表示有关的endianess问题