accelerated c++ 第四章 程序疑问?

changshuaia 2012-02-02 05:30:27
程序意图:利用流输入多个学生的姓名和成绩,并调用函数计算最终成绩,最后输出姓名和最终成绩。

出现问题:输入第一个学生姓名和成绩时正常,但输入第二个学生成绩和姓名时程序直接跳出。
#include<iostream>
#include<vector>
#include<string>
using namespace std;
struct Student_info //学生的成绩
{
string name;
double midterm,final;
vector<double> homework;
};
istream& read_hw(istream& in,vector<double>& hw)
{
if (in)
{
hw.clear();
double x;
while (in>>x)
{
hw.push_back(x);
}
in.clear();
}

return in;
}
istream& read(istream& is,Student_info& s)
{
//cout<<"输入姓名,期中,期末:";
is>>s.name>>s.midterm>>s.final;
//cout<<"输入家庭作业成绩:";
read_hw(is,s.homework); //读取家庭作业
return is;
}
int main()
{
vector<Student_info> students;
Student_info record;
string::size_type maxlen=0;
while (read(cin,record))
{
maxlen=max(maxlen,record.name.size());
students.push_back(record);
}

//后面输出省略

return 0;
}
...全文
129 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Fergon 2012-02-02
  • 打赏
  • 举报
回复
晕。。给击倒了。

istream& read_hw(istream& in,vector<double>& hw)
{
if (in)
{
hw.clear();
double x;
while (in>>x)
{
hw.push_back(x);
}
in.clear();
in.sync();
}

return in;
}
Fergon 2012-02-02
  • 打赏
  • 举报
回复
istream& read_hw(istream& in,vector<double>& hw)
{
if (in)
{
hw.clear();
double x;
while (in>>x)
{
hw.push_back(x);
}
in.clear();
in.sync();
}

return in;
}
Fergon 2012-02-02
  • 打赏
  • 举报
回复

istream& read_hw(istream& in,vector<double>& hw)
{
if (in)
{
hw.clear();
double x;
while (in>>x)
{
hw.push_back(x);
}
in.clear();
in.sync();
}

return in;
}
面包大师 2012-02-02
  • 打赏
  • 举报
回复
ctrl+z,我也在想你是怎么结束的。。。
changshuaia 2012-02-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 czh3642210 的回复:]

表示VS2005没有问题、、、、
[/Quote]
我用的vs2008,不应该啊?
那问一下,你在输入第一个学生的家庭作业成绩后,是怎么结束再输出第二个学生的信息的?

我第一个输入结束后,感觉in.clear()没起到作用似的,输入第二个人时直接就程序结束了?
面包大师 2012-02-02
  • 打赏
  • 举报
回复
表示VS2005没有问题、、、、

64,652

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧