求助大佬,为什么我无法从键盘中再输入了

#include "stdafx.h"
#include<vector>
#include<iostream>
#include<string>
using namespace std;
vector<double>sum = {};
int n = 0;
struct student
{
string Cname;
int Cnum;
double scores;
};
void search(student* stu, int i);
int main()
{

vector<student>STU;

student temp;

do
{
getline(cin, temp.Cname);
cin >> temp.Cnum;
cin >> temp.scores;
STU.push_back(temp);
n++;
}while (temp.Cnum != 000 && temp.scores != 0);
search(&STU.at(0), 0);
return 0;
}
void search(student* stu, int i)
{
for (int j = i + 1; j < n; j++)
{
if (stu[i].Cname == stu[j].Cname)
{
sum.at(i) += stu[j].scores;
sum[i + 1]++;
}
else
search(stu, i + 2);
}
int aver = sum[i] / sum[i + 1];
cout << stu[i].Cname << " " << aver;
}
题目是:输入格式:
若干行,每行信息包括班级,学号和成绩,用空格隔开,
最后一行为:000 000 000

输出格式:
若干行,每行信息包括:班级和平均成绩,中间用一个空格隔开。行数由输入中的班级数确定。


如图中所示 “网络”后,从键盘中无法输入学号了
...全文
213 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
可是输入string对象时getline 的原型是istream& getline ( istream &is , string &str , char delim=“\n" )这个应该没用错,可是从键盘上为何输入不了呢?而cin却可以呢?
lilianjie001 2017-12-23
  • 打赏
  • 举报
回复
cin >> temp.Cname;替代getline(cin, temp.Cname); 要明白getline的用法

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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