【发布时间】:2010-08-18 11:44:05
【问题描述】:
这是我的代码。目的是输入一个学生类的向量,包含姓名和作业成绩。
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 来表示作业成绩输入结束时。各位大神能推荐一下解决方法吗?
【问题讨论】:
标签: c++ string inputstream