通过文本文件将字符串和Int发送到函数

时间:2013-10-31 01:17:27

标签: c++ function text-files ifstream

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

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

与往常一样,非常感谢任何帮助实现这一目标的帮助,谢谢!

1 个答案:

答案 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);
    }
}