如何将点写入和读取到二进制文件? 我在C++中编程了一个在空间中移动的球(3D点)。我有它所有的动作和姿势。我是说,它经过的所有路径点

如何将点写入和读取到二进制文件? 我在C++中编程了一个在空间中移动的球(3D点)。我有它所有的动作和姿势。我是说,它经过的所有路径点,c++,file-io,binaryfiles,C++,File Io,Binaryfiles,我必须将其所有位置\点写入二进制文件,然后读取它以恢复移动\路径。例如,如果我向上向右移动球,我会保存它经过的所有位置,这样我就可以读取它们并绘制球移动相同的图,恢复其路径 我看到了一个二进制文件的示例,但它并没有对我说什么: // reading a complete binary file #include <iostream> #include <fstream> using namespace std; ifstream::pos_type size;

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

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

 // 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;
 }
//读取完整的二进制文件
#包括
#包括
使用名称空间std;
ifstream::pos_类型大小;
char*memblock;
int main(){
ifstream文件(“example.bin”,ios::in | ios::binary | ios::ate);
if(file.is_open())
{
size=file.tellg();
memblock=新字符[大小];
file.seekg(0,ios::beg);
file.read(memblock,size);
file.close();
cout您可以将一个点(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 << ';';
intx=10,Y=12,Z=13;
流输出文件(“points.bin”,ios::binary);
如果(!outfile)

cerr为什么你想读写二进制文件?为什么不是文本格式?你的例子只是把一个文件读入内存,没有解释文件实际包含的内容,也没有写文件的例子。继续谷歌搜索-有很多例子…herolover,我想用一个称为每帧的函数来实现它(更新函数)所以我不需要一个大文件,而需要一个小文件。而John3136,我一直在用谷歌搜索(:但是文本格式是人类可读的,更适合调试。你的点是浮动的吗?如果点是整数,那么内存开销就不大。点是浮动的