Часть моего входного файла, с которой я столкнулся, это:
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
}
Как всегда, спасибо заранее за любое время или помощь, высоко ценится!