我在读取输入文件时遇到问题。输入文件看起来像这样
莱昂内尔·梅西-10 43
费尔南多·托雷斯 9 -29
克里斯蒂亚诺·罗纳尔多 7 31
韦恩鲁尼 10 37
内马尔 17 29
安德烈斯·伊涅斯塔 8 32
罗宾范佩西 19 20
莱昂内尔·梅西 10 43
哈维埃尔南德斯 6 36
梅苏特厄齐尔 10 38
迪迪埃·德罗巴 10 35
费尔南多托雷斯9 29
卡卡 10 17
问题是我不能使用 getline 函数,因为我想将名称存储到单个变量中以存储到数组中,并将第一个数字存储到一个变量中,第二个存储到另一个变量中。我也尝试使用 peek 功能,但我从未学会过,所以我没有成功。如果有人知道如何阅读直到名称的结尾并将其存储到一个变量中,那将不胜感激。
这就是我从输入文件读取时我的代码的样子
while(!fin.eof())
{
fin >> first >> last >> num >> point;
if (num > 0 && point > 0)
{
list[i].firstname = first;
list[i].lastname = last;
list[i].number = num;
list[i].points = point;
i++;
}
else if (num < 0 || point < 0)
{
reject[j].firstname = first;
reject[j].lastname = last;
reject[j].number = num;
reject[j].points = point;
j++;
}
}
如果输入有名字和姓氏,这非常有效。我知道问题出在fin >> first >> last >> num >> point上;
但我不确定如何将第一个和最后一个(可能还有中间)放在一起