Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;:读/写二进制文件。什么';代码中发生了什么?_C++_Casting_Io_Binaryfiles - Fatal编程技术网

C++ C++;:读/写二进制文件。什么';代码中发生了什么?

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

我一直在努力解决无格式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();
    }
#包括
#包括
#包括
使用名称空间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问题