Отправка строки и Int в функцию через текстовый файл

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

Как всегда, любая помощь, чтобы заставить это работать, будет очень благодарна, спасибо!

  • 0
    Вы не должны иметь; (точка с запятой) в конце оператора while(getline(infile, line));
  • 0
    Ах, спасибо за указание на это, не знаю, как это ускользнуло. К сожалению, это не проблема, хотя.
Теги:
function
text-files
ifstream

1 ответ

1
Лучший ответ

Я думаю, что правильный код должен выглядеть так. Помните, что вам нужно прочитать 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);
    }
}
  • 0
    Cout печатает на экране должным образом, как по имени, так и по возрасту, однако он все равно ничего не делает при передаче его функции (консоль просто остается пустой). Любые идеи о том, почему это может происходить?
  • 0
    Аааа ... так расстроился из-за себя, ха-ха. Это сработало отлично, я случайно закомментировал свое заявление о печати, в то время как я комментировал какой-то другой код в моем основном. Большое спасибо за помощь!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню