我用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)呢?我应该通过二进制字节写它吗?或作为点和文件使其成为二进制..?
答案 0 :(得分: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 << ';';