【发布时间】:2014-11-07 04:38:06
【问题描述】:
我正在使用 C++ 开发一个项目,我被要求读取一个 txt 文件并将数据分配给一个节点。 文本文件是:
雅妮, 19, 1993, 12345
奥斯卡, 20, 1994, 56789
我有结构列表:
struct List{
string name;
int age;
int birth;
int id;
List *next;
List *prev;
}
我的问题,如何将文本文件中的数据分配给节点,在这种情况下是两个节点,但是如果有更多行,它必须创建更多新节点?
我正在使用的部分代码:
#include <fstream>
struct List{
...
}
//Here I create the first Node and:
aux=head;
ifstream file ("file.txt");
file >> aux->name >> aux->age >> aux->birth >> aux-> id;
如果文本文件中没有逗号,则可以正常工作,但逗号会到处出错。
另外,总结一下:) 如果文本文件有:
丹尼·沃森,1980 年 23 岁,58953
节点的名称必须是 Danny Watson,而不仅仅是 Danny :)
我希望你能帮助我!我会很感激的。
(对不起,我的英文不太好:()
【问题讨论】:
-
逗号有什么错误?它们是否包含在结果中?
-
是的,我不希望它们包含在“name”或“age”变量中,因为我必须使用另一个函数显示节点。提前致谢。
-
您可以尝试在 StackOverflow 中搜索“c++ 读取文本文件列表”以获取大量示例。
-
糟糕,您正在阅读“逗号分隔值”文件,因此您需要在 StackOverflow 中搜索“C++ 读取文件 csv”并查看涉及文本字段的结果。我之前的建议是针对非 csv 文件(例如使用制表符)。
-
谢谢@Thomas,这是一位朋友对我说的,要查找 CSV 文件,但我完全是初学者,几乎不了解所使用的语法。该任务说它必须是一个结构列表,并且必须将变量分配给一个节点。新行用于另一个新节点。在 StackOverflow 中搜索“C++ 读取文件 csv”对我有帮助吗? :) 再次感谢您!
标签: c++ stream codeblocks fstream ifstream