我正在制作一个必须存储对象位置的程序。这个数据可以达到100MB以上,我想把它存储在硬盘上。现在,我四处搜索,有几种方法可以做到这一点:txt-file、sql、xml、...
我已经知道如何在 C++ 中制作一个 txt 文件。但是 .txt 文件存储大量数据的优势是什么?最好的方法是什么?
目前我逐行存储数字,以便我可以使用getline()
. 但它给我带来了问题,它读得不好。可能是因为 .txt 无法处理太多数据,或者可能是因为逐行阅读非常慢,这给我带来了问题。有人知道如何解决这个问题吗?
这是一些代码:
_chdir("c:/Documents and Settings/Bram/Bureaublad/cloth3d");
ofstream mfile;
mfile.open("example.txt", ifstream::out);
some calculations...
mfile << (double) vervangplaats[i][j][0] << "\n";
mfile << (double) vervangplaats[i][j][1] << "\n";
mfile << (double) vervangplaats[i][j][2] << "\n";
// the data is stored in the .txt file
mfile.close();
这将数据存储在 txt 文件中,现在我将其提取回来。
std::string b;
ifstream file("example.txt", ifstream::out);
if(file.is_open())
{
getline(file, b);
result[0][teller_x][teller_y] = (double) atof(b.c_str());
getline(file, b);
result[1][teller_x][teller_y] = (double) atof(b.c_str());
getline(file, b);
result[2][teller_x][teller_y] = (double) atof(b.c_str());
}
最后一个带有 getline 的函数每帧使用 2500 次。
并且帧不加载,可能是因为每帧的 getline 量很大,或者仅仅是因为 txt 不适合存储大量数据?