【发布时间】:2018-09-26 23:04:13
【问题描述】:
我知道这与 eof 有关,但我不知道流的确切工作原理,如果有人能告诉我发生了什么,我会更好地理解。
假设我有 3 个数字 {1, 2, 3} load 函数将变量放入节点中,但是当我打印所有节点时,只会打印 1 个。
void load() {
ifstream fload;
node *n = new node;
node *temp = new node;
fload.open("DoubleList.dat");
if (fload) {
fload >> n->data;
n->next = NULL;
n->prev = NULL;
head = n;
tail = n;
curr = n;
while (!fload.eof()) {
fload >> temp->data;
temp->next = NULL;
temp->prev = curr;
curr = temp;
tail = temp;
}
}
}
【问题讨论】:
-
您似乎从未将节点的
next设置为NULL。该列表将始终显示为最多 1 个元素。 -
你应该阅读this question。
-
我认为你是对的,可能是一个简单的错误。 :( 已经看了好几个小时了,哈哈,其实它不需要指向任何我不认为的东西。
-
您只分配了 2 个节点,所以我不确定您打算如何存储 3 个值。循环内应该有一个分配
-
当您发现自己在寻找时间时,请停下来。查阅您的设计文档,看看哪里出了问题。如果你没有设计,你为什么要写代码?如果你不知道你在写什么以及为什么,你几乎总是在浪费你的时间。如果您确实编写了代码,如果没有明确列出可测试指标的程序目标,您如何知道它是否正常工作?