0

我正在尝试读取每行都有名称和年龄的文本文件,例如

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();

像往常一样,任何帮助使其工作的帮助将不胜感激,谢谢!

4

1 回答 1

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);
    }
}
于 2013-10-31T01:48:24.367 回答