在文本文件读取期间调试断言

时间:2014-02-04 23:47:55

标签: c++ ifstream

我试图从文本文件中读取4个浮动变量,然后将它们放入函数中。

void Array::readFile()
{
ifstream myfile1("numbers.txt");
if (!myfile1.is_open()) {
    cout << "The file could not be opened";
}
else {
    while (myfile1.good())
    {
        double a, b, c, d;
        myfile1 >> a >> b >> c >> d;
        //addMethod(a, b, c, d));
    }
}
}

文本文件数据的例子:

-0.143562 0.187022 0.130935 0.001797

我遇到的问题是我的调试断言失败了!行后出错:

else {

错误:表达式:_BLOCK_TYPE_IS_VALID(pHEAD-&gt; nBlockUse)

现在我甚至无法测试while循环中的代码,因为它在此之前就已经破了。我对c ++很新,所以没有遇到过这类错误。我的文本文件位于带有exe文件的debug文件夹中。

以下是一些要点:Array.cpp:https://gist.github.com/anonymous/f9a9942bced0096613bf Array.h:https://gist.github.com/anonymous/ce68c4fe949413487697 来源/主要:https://gist.github.com/anonymous/7545c4598196501a69d8

1 个答案:

答案 0 :(得分:0)

Array的析构函数执行此操作:

delete this->sphereArray;

但构造函数(或其他任何地方)没有任何内容可以初始化它。

此外,Array::sphereArray的定义如下:

sphere *sphereArray[sizeof(sphere)];

你不能delete那个。也许你想要浏览那个数组的元素并删除它们。但它们都是未初始化的。此外,我非常强烈地怀疑这条线不会像你想象的那样做。声明一个指针数组是非常不寻常的,这些指针数组是它们指向的类型的长度。

相关问题