从文件中读取两个数字,其中空格作为单个数字

时间:2019-03-31 22:32:36

标签: c++ file int ifstream cin

我遇到的输入文件部分是:

3北卡罗莱纳州26-5 147 4 3

我的输入文件格式为:

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

pos \ t名称\ t输赢\ t投票\ t lPos ...

这里的问题是147,并且从输入的“偶然”选项卡中将4读为1474。是否可以像Im picturing这样输入验证?当然,以下3个必须作为单独的int读取。

编辑:此行将是唯一带有“偶然”选项卡的行。所有其他的都是正确的。

到目前为止,我尝试过的所有解决方案最终都会吃掉folwoing 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
}

一如既往,在此先感谢您的任何时间或帮助,非常感谢!

0 个答案:

没有答案