做了一个简单的学生成绩统计的小程序,储存学生信息并输出最高与最低成绩,
但是输入时候总是自动跳过cin,这是为什么
#include
#include
using namespace std;
struct node
{
string name;
int id;
int grade;
}a[10];
int main()
{
int n;
cin>>n;
for(int i=0;i
{
getline(cin,a[i].name);
cin>>a[i].id;
cin>>a[i].grade;
}
int max=0;
int min=0;
for(int i=1;i
{
if(a[max].grade
if(a[min].grade>a[i].grade) min=i;
}
cout<<a[max].name<<" "<<a[max].grade<<endl;
cout<<a[min].name<<" "<<a[min].grade;
}
有关c++中getline的问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
7条回答 默认 最新
dabin510 2018-08-20 06:21关注int main()
{
int n;
cin >> n;
string temp;
for (int i = 0; i {
cin.ignore();;//忽略回车
getline(cin, a[i].name);
cin >> a[i].id;
cin >> a[i].grade;
}}
终其原因就是因为getline函数把上次出入n之后的空格当做输入了,2楼3楼方法都可以
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报