我正在尝试读取每行上有名称和年龄的文本文件,例如
Tom
55
Bob
12
Tim
66
然后我需要将它传递给一个函数,该函数接受一个字符串和一个int,例如:
sortDLL.Insert(name, age);
但是,我不确定如何做到这一点。我用以下方法测试了它并且它可以工作(绕过文本文件):
string tom = "tom";
string bob = "bob";
string tim = "tim";
int a = 55;
int b = 12;
int c = 66;
sortDLL.Insert(tom, a);
sortDLL.Insert(bob, b);
sortDLL.Insert(tim, c);
但是当我尝试读取文本文件并发送它时,程序无法正常运行。这就是我目前正在尝试的事情,我已经搞砸了其他一些事情,但没有运气:
ifstream infile ("names.txt");
while(getline(infile, line));
{
istringstream ss(line);
if (ss >> name)
cin >> name;
else if (ss >> wt)
cin >> wt;
sortDLL.Insert(name, wt);
}
infile.close();
与往常一样,非常感谢任何帮助实现这一目标的帮助,谢谢!
答案 0 :(得分:1)
我认为正确的代码应该是这样的。请记住,每1次插入必须阅读2行。
while(getline(infile, line))
{
stringstream ss(line);
ss >> wt;
if(ss.fail()) {
name = line;
continue;
}
else {
// cout << name << ":" << wt << endl;
sortDLL.Insert(name, wt);
}
}