Я пытаюсь прочитать в текстовом файле, который имеет имя и возраст в каждой строке, такой как этот
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();
Как всегда, любая помощь, чтобы заставить это работать, будет очень благодарна, спасибо!
Я думаю, что правильный код должен выглядеть так. Помните, что вам нужно прочитать 2 строки на 1 вставку.
while(getline(infile, line))
{
stringstream ss(line);
ss >> wt;
if(ss.fail()) {
name = line;
continue;
}
else {
// cout << name << ":" << wt << endl;
sortDLL.Insert(name, wt);
}
}
while(getline(infile, line));