我试图使用此功能
int input(int marks[classMax][3], string names[classMax], float& avg)
{
for (int i = 0; i < students; i++)
{
for (int j = 0; j < 3; j++)
{
fin >> marks[i][j];
}
fin >> names[i];
}
}
获取带有学生姓名的标记列表到两个数组中。清单如下:
M1 M2 M3 FirstName LastName
,其中M代表马克。
循环工作正常但当它到达First和Last Name之间的空间时,程序似乎只将FirstName写入数组。我尝试使用fin.get
和fin.getline()
但我收到此错误:
error: no matching function for call to 'std::basic_ifstream<char>::get(std::strings&, int)'
答案 0 :(得分:2)
你可以试试这个:
int input(int marks[classMax][3], string names[classMax], float& avg)
{
for (int i = 0; i<students; i++)
{
for (int j = 0; j<3; j++)
{
fin >> marks[i][j];
}
std::getline(fin, names[i]);
}
}
有关详细信息,请查看cppreference。
答案 1 :(得分:1)