Вот мой код.Цель состоит в том, чтобы ввести класс «Вектор ученика», содержащий имя и оценку домашней работы.
istream& input(istream& is, student& s){
is.clear();
cout << "Enter student name: ";
getline(is,s.name);
grade(is,s.homework);
return is;
}
istream& grade(istream& is, vector<double>& homework){
if(is){
homework.clear();
double x;
cout << "Enter grade of student - Ctrl-Z to stop: ";
while(is>>x)
homework.push_back(x);
is.clear();
}
return is;
}
Проблема в том, что имя первого ученика в порядке, но когда программа читает имя следующего ученика (ввод с клавиатуры)всегда начинается с символа замены (ASCII 26).Я предполагаю, что проблема возникает из входного потока, когда я использовал CTRL - Z, чтобы сигнализировать об окончании ввода оценок домашней работы.Ребята, вы можете предложить решение?