【发布时间】:2018-04-03 11:51:49
【问题描述】:
我创建了一个双向链表类和驱动程序。我应该从文本文件中读取整数到列表中,但它没有读取最后一个数字 (37),我不知道为什么。我几乎可以肯定,initializeItem() 或 insertItem() 函数没有问题,所以我没有列出这些,但如果需要我可以列出。
这是文本文件:
9 10 3 84 19 63 1 45 100 37
这是我必须阅读的代码:
DoublyLinkedList list;
ItemType item;
int input;
std::fstream fs;
fs.open(argv[1], fstream::in);
if (fs.is_open())
{
fs >> input;
while (!fs.eof())
{
item.initialize(input);
list.insertItem(item);
fs >> input;
}
}
else
{
cout << "File could not be opened."
<< " Try again"
<< endl;
return 0;
}
当我打印出列表(排序)时,我得到了这个:
1 3 9 10 19 45 63 84 100
【问题讨论】:
-
我稍微更改了您的代码以删除初始化和 insertItem 以便我可以运行。它按预期工作。因此,可能是您的 initializeItem() 或 insertItem() 函数导致了您的问题。我也同意@templatetypedef,虽然 (fs >> input) 会更好。
标签: c++ data-structures fstream doubly-linked-list