Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 指针和类有问题。两个相同的类,其中一个工作,一个deosn';T_C++ - Fatal编程技术网

C++ 指针和类有问题。两个相同的类,其中一个工作,一个deosn';T

C++ 指针和类有问题。两个相同的类,其中一个工作,一个deosn';T,c++,C++,好吧,我一直在做的一个项目有点麻烦。我需要两个类来形成多变量类(或结构)的链表。第一个被称为gps的系统工作正常。它应该读取x和y坐标到某个位置,然后将其添加到链接列表中。这工作完全正常,如下所示: ifstream in; location *tail = NULL; location *head = NULL; gps::gps() { tail = NULL; in.open("coordinates.txt"); if(in.fail()) {

好吧,我一直在做的一个项目有点麻烦。我需要两个类来形成多变量类(或结构)的链表。第一个被称为gps的系统工作正常。它应该读取x和y坐标到某个位置,然后将其添加到链接列表中。这工作完全正常,如下所示:

ifstream in;
location *tail = NULL;
location *head = NULL;

gps::gps()
{
    tail = NULL;

    in.open("coordinates.txt");
    if(in.fail())
    {
        std::cout << "Unopen to open coordinates.txt" << std::endl;
    }
    while (!in.eof())
    {
        getLocation();
    }
    in.close();
}

void gps::getLocation()
{
    location o;
    in >> o.xcoordinate;
    in >> o.ycoordinate;
    addToTail(o);
}

void gps::addToTail(location a)
{
    location *newlocation = new location();
    newlocation->xcoordinate = a.xcoordinate;
    newlocation->ycoordinate = a.ycoordinate;
    newlocation->next = NULL;

    if (tail == NULL)
    {
        head = tail = newlocation;
    }
    else
    {
        tail->next = newlocation; // now the next of old tail is the new location
        tail = newlocation;       // the new location should become the new tail
    }
}
coordinates.txt:

    53.344384 -6.261056
    53.344424 -6.260818
    53.344450 -6.260614
    53.344476 -6.260324
    53.344501 -6.260088
    53.344537 -6.259906
你有

newacceleration->y = a.y;
两次。第二个需要是:

newacceleration->z = a.z;
更新:传感器()中的这两行是什么

你有

newacceleration->y = a.y;
两次。第二个需要是:

newacceleration->z = a.z;
更新:传感器()中的这两行是什么


您是否尝试过使用调试器?请在问题中添加一些输入文件行我将投票结束此问题,因为您没有提供尝试调试的实际代码。如果您愿意,我可以提供全部代码?我真的不知道你在问什么。我不擅长调试,不是我们在大学里讨论过的,这是一个基本的编码模块。请添加加速代码,至少我们可以看到x,y,z以及您在cout行中看到的错误值。您是否尝试过使用调试器?在问题中添加一些输入文件行我投票将此问题作为离题结束,因为您没有提供真正的代码来尝试调试。如果您愿意,我可以给您全部代码?我真的不知道你在问什么。我不擅长调试,这不是我们在大学里讨论过的,这是一个基本的编码模块。请添加加速代码,至少我们可以看到x、y、z的类型,以及你在cout行中提到的错误值。这是一个经典案例,会有很大帮助。对不起!那是文章中的错误,不是代码。谢谢你指出这一点。这是一个经典的案例,会有很大帮助。对不起!那是文章中的错误,不是代码。谢谢你指出这一点。
int f;
cin >> f;