【发布时间】:2016-02-28 16:15:09
【问题描述】:
对不起。我以前不是克莱尔。我有一个包含以下格式数据的文件
A(3)
B(4),A
C(2),A
E(5),A
G(3),A
J(8),B,H
H(7),C,E,G
I(6),G
F(5),H
...
这些数据代表一个图表。
我将使用关键路径的方法来计算如何通过这个文本文件。
字符是步骤 int 是每个任务的长度 另一个字符是第一个字符之前的步骤
所以我创建了Task类来读取文件,它的构造函数有以下参数
Tache::Tache(char step2, int duration, list<Task*> precedentTask)
{
this->step = step2;
this -> duration = duration;
for(list<Task*>::iterator it = this-> precedentTask.begin(); it != this-> precedentTask.end(); it++)
{
this-> precedentTask.push_back(*it);
}
}
我主要添加了
string line;
list<Task> *allTaches = new list<Task>();
while(getline(file, line, ','))
{
//I want to be able to receive the parse line from the file and add it like
//allTaches.push_back(line)
//But the format needs to look like (Char, duration, <a list of> PrecedentChar)
//when I do
cout<< line << Lendl;
it prints
A(3)
B(4)
A
C(2)
A
E(5)
A
}
所以我不确定真正要做什么。
【问题讨论】:
-
您解析显示
Code here的行。但说真的,您需要解释像这样调用Task意味着什么——A 和B 是什么对象?字符串?宏定义? -
@Leeor 问题似乎归结为:我已经在文件中格式化了文本,并且需要拆分每一行的部分,以便我可以在每一行上调用
Task。 -
@GlennTeitelbaum,可能,但在他改变问题之前,我认为情况会更糟,他希望按名称选择对象(否则正确的调用是例如
Task("B", 4, "A")) -
@Leeor 似乎第一个参数是单个字符,第三个参数是一些神秘的
task,所以是的,需要 OP 的一些帮助。那么这个问题有两个部分,解析和翻译,我可以帮助第一部分,巧妙地将第二部分留给读者练习 -
@GlennTeitelbaum,啊,错过了签名。
标签: c++ list file line push-back