Чтение двух чисел с пробелами в виде одного числа из файла - PullRequest
0 голосов
/ 01 апреля 2019

Часть моего входного файла, с которой я столкнулся, это:

3 Северная Каролина 26-5 147 4 3

Мой входной файл отформатирован как:

INT \ t STRING \ t INT-INT \ t INT \ t INT ...

pos \ t name \ t wins-loss \ t голосования \ t lPos ...

Проблема здесь в том, что 147 и 4 предназначены для чтения как 1474 со «случайной» вкладки во входных данных. Возможно ли ввести валидацию, как я изображаю? Следующие 3, конечно, должны читаться как отдельный int.

РЕДАКТИРОВАТЬ: Эта строка будет единственной строкой со «случайной» вкладкой. Все остальные будут правильными.

Любые решения, которые я пробовал до сих пор, заканчиваются тем, что съедают следующие 3, а иногда и больше, разрушая чтение файла.

while (inFile >> input.pos)
{
    inFile >> input.name;
after, read it also
    if ((inFile >> ws).peek() > 64 && (inFile >> ws).peek() < 91)
    {
        inFile >> name2;
        input.name += ' ' + name2;
    }
    inFile >> input.wins;
    inFile.ignore(1, '-');
    inFile >> input.loss;
    inFile >> input.vote;        //PROBLEM LIES HERE
    if ((inFile >> ws).peek() == '-')
    {
        input.lPos = 0;
        inFile.ignore(1, '-');
    }
    else
        inFile >> input.lPos;
    sList.insertAfter(input);   //Insert completed input
}

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

...