我有一个程序可以计算很多数字,我无法将数据存储在数组中,因为 RAM 内存不足以容纳数据。所以我写了一些代码,将数据放在一个 .txt 文件中。在同一个程序中,我必须逐个加载它以使用 openGL/GLUT 显示数据。
现在,.txt 文件如下所示:
number1;number 2;number3;number4;......number N;
number1;number 2;number3;number4;......number N;
number1;number 2;number3;number4;......number N;
...................................................................................
number1;number 2;number3;number4;......number N;
请注意,在数字 N 之后;出现一个“\n”(输入)。那一行有 2500 个数字。
我必须逐行加载数据,所以我使用getline();
但是每一帧都需要下一行。
为了简化一点,这里是要阅读的代码:
ifstream file("example.txt", ifstream::in);
if(file.is_open())
{
getline(file, b);
cout<<b<<"\n"<<"\n";
file.close();
}
此代码不是实际程序中的代码,但它显示了问题。
代码在这里运行良好,它简单地加载第一行并将其显示在控制台屏幕上。并在openGL中的每一帧都这样做。所以每次opengl开始一个新框架时,我的控制台屏幕都会不断更新。
但是当我添加这个时:
ifstream file("example.txt", ifstream::in);
if(file.is_open())
{
getline(file, b);
strcpy(resultch, b.c_str());
cout<<b<<"\n"<<"\n";
file.close();
}
(如果 resultch 被声明为:)char* resultch = new char[2550];
代码只运行 1 次并且程序在它之后停止,控制台屏幕比说:
proces returned -1073741819 <0x0000005>
为什么每次都不能正常运行?