C++ 上次插入时出现链表错误
我这里有这部分代码 这是为了循环5次(最多5次)将单词插入链接列表C++ 上次插入时出现链表错误,c++,linked-list,C++,Linked List,我这里有这部分代码 这是为了循环5次(最多5次)将单词插入链接列表 for ( int i = 0 ; i < MAX ; i++ ) { string alphabet = G->returnAlphabets(); L[i]->addWords(alphabet[i]); } 我的问题是它在最后一个循环中给了我错误。这意味着在MAX=4时,插入节点。循环的其余部分很好。当我将最大值减少到4时,意味着它循环4次,程序是无错误的,但当程序循环5次时,它会给出
for ( int i = 0 ; i < MAX ; i++ )
{
string alphabet = G->returnAlphabets();
L[i]->addWords(alphabet[i]);
}
我的问题是它在最后一个循环中给了我错误。这意味着在MAX=4时,插入节点。循环的其余部分很好。当我将最大值减少到4时,意味着它循环4次,程序是无错误的,但当程序循环5次时,它会给出错误
有人能指出我的错误吗
编辑:
我检测到,在最后一个循环中,它没有到达第一个节点。而且程序从文件中得到的信息是,它在进入第一个节点时出错,而(!myfile.eof())的逻辑是错误的,因为您没有检查
getline(myfile,line)代码>成功,然后在检测到EOF时继续使用该值。您应该使用:
while (getline(myfile, line))
{
...rest of loop...
}
(对我来说)如果不仔细检查手册或标准,行
在失败的getline()
之后的状态是什么,就不清楚了,但这很容易导致行[0]
失败
既然您说“它在最后一次迭代中失败了”,这可能是您的问题的主要原因。它有什么问题?可以详细说明吗?它不完整,无法编译或运行?这是一个很好的开始。例如,第一个代码段中的L
是什么。它运行,但在最后一个循环中给出错误。循环的其余部分没有问题。@PohSun,最后一个循环上的错误听起来和我提到的完全一样。链接解释得很好。尝试了你的解决方案,但程序仍然给我错误。嗯,当我尝试使用MAX=4时,意味着我循环了4次,它可以工作。但当循环5次时,它会给我errorOK-然后我们需要(a)您的代码和(b)您的数据。如果两者都没有,很难确定你的问题是什么。请学习如何创建SSCCE()。
while (getline(myfile, line))
{
...rest of loop...
}