【以下回答由 GPT 生成】
问题原因是C++中的>>运算符不支持直接将输入流(cin)的输入赋值给双精度(double)类型的变量。而你在代码中尝试使用的sa[i]是一个double类型的变量。
解决这个问题的方法是,使用一个临时变量将输入流(cin)的输入赋值给该变量,然后再将该变量赋值给sa[i]。
以下是修改后的代码示例:
void set(Student& sa, int n)
{
cout << "Please enter the student's name: ";
getline(cin, sa);
cout << "Please enter quiz scores: ";
for (int i = 0; i < n; i++)
{
double temp; // 临时变量
cin >> temp; // 将输入流(cin)的输入赋值给临时变量
sa[i] = temp; // 将临时变量赋值给sa[i]
}
while (cin.get() != 'n') continue;
}
这样修改后,你就可以将输入流(cin)的输入赋值给double类型的变量了,并且编译不会报错。希望对你有帮助!
【相关推荐】
sa是个结构体,cin>>操作不能直接给结构体,要给它的成员才行。