#include<iostream>
const int MAX=5;
int main()
{
using namespace std;
int golf[MAX];
cout<<"Please enter your golf scores.\n";
int i;
for(i=0;i<MAX;i++)
{
cout<<"round #"<<i+1<<":";
while(!(cin>>golf[i]))
{
cin.clear();
while(cin.get()!='\n')
continue;
cout<<"Please enter a number: ";
}
}
double total=0.0;
for(i=0;i<MAX;i++)
total+=golf[i];
cout<<total/MAX<<" = average score "<<MAX<<" rounds\n";
return 0;
}
题目的意思是输入五个整数,然后算平均值
while(!(cin>>golf[i]))
{
cin.clear();
while(cin.get()!='\n')
continue;
cout<<"Please enter a number: ";
}
这段代码的作用是当输入为非整数值时提示错误并重新输入,但是看不明白哈,书上的解释是用clear()来重置输入,接下来程序在while循环中使用cin.get()来读取行尾之前的所有输入,从而删除这一行的错误输入,我不明白的是重置输入是什么意思,还有用cin.get()来读取行尾之前的所有输入的话那不是把错误再读一遍么,还有这个结构看得也不太明白哈,谁能给我说说哈