0

我已经用 C++ 编写了一个在空间中移动的球(3D 点)的代码。我有它所有的动作位置。我的意思是,它通过的所有路径点。

我必须将其所有位置\点写入二进制文件,然后读取它以恢复运动\路径。例如,如果我向上和向右移动球,我会想要保存它通过的所有位置,以便我可以读取它们并绘制相同的球移动,恢复它的路径。

我看到了一个二进制文件的例子,但它对我来说并没有什么意义:

 // reading a complete binary file
 #include <iostream>
 #include <fstream>
 using namespace std;

 ifstream::pos_type size;
 char * memblock;

 int main () {
   ifstream file ("example.bin", ios::in|ios::binary|ios::ate);
   if (file.is_open())
   {
     size = file.tellg();
     memblock = new char [size];
     file.seekg (0, ios::beg);
     file.read (memblock, size);
     file.close();

     cout << "the complete file content is in memory";

     delete[] memblock;
   }
   else cout << "Unable to open file";
   return 0;
 }

它会自动创建文件吗?那在哪里?那么写作和阅读点(X,Y,Z)呢?我应该用二进制字节写吗?或作为点和文件使其二进制..?

4

1 回答 1

1

您可以将点 (X,Y,Z) 写入二进制文件,例如用冒号分隔坐标,用分号分隔坐标:

int X=10, Y=12, Z=13;
ofstream outfile("points.bin", ios::binary);
if (!outfile)
    cerr << "Could not open a file" << endl;
else
    outfile << X << ','
            << Y << ','
            << Z << ';';
于 2013-07-25T12:18:41.070 回答