Voici mon code. Le but est d'entrer un vecteur de classe d'étudiant, contenir le nom et les catégories de devoirs.La chaîne d'entrée C++ contient le caractère ASCII 26 (Substitute). Comment s'en débarrasser?
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;
}
Le problème est que le nom du premier étudiant est ok, mais quand le programme a lu le prochain nom de l'étudiant (Entrée du clavier), il commence toujours par le caractère de remplacement (ASCII 26). Je suppose que le problème vient du flux d'entrée, lorsque j'ai utilisé CTRL-Z pour signaler la fin de l'entrée des notes de devoirs. Pouvez-vous suggérer une solution?