Soft Ware/C++ 언어!!
cout 의 입력큐 초기화
달려가보자
2011. 10. 20. 00:12
#include <iostream>
using namespace std;
const int Max = 5;
int main()
{
using namespace std;
int golf[Max];
cout<<"골프 점수를 입력하십시오.\n";
cout<<"총"<<Max<<"라운드 점수를 입력해야 합니다.\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<<"골프 점수를 입력하십시오 : ";
}
}
double total = 0.0;
for(i = 0; i<Max ; i++) total += golf[i];
cout<<"총"<<Max<<"라운드의 평균 점수 = "<<total/Max<<endl;
return 0;
}
여기서
이부분이 초기화 부분이다 .
cin.clear() 이부분은 cin 메서드의 리턴형이 bool형인데 int 형을 입력받아야 되는데 char형을 입력시
cin의 플래그 상태는 false 인데 이경우 더이상 입력 받을수 없다.
이경우 cin.clear();를 이용하여 플래그 상태를 없애고 버퍼에 담아 있는 내용을 다 읽어 드림으로서
초기화 시켜준다
여기서
while(!(cin>>golf[i])){
cin.clear();
while(cin.get() != '\n')
continue; 이부분이 초기화 부분이다 .
cin.clear() 이부분은 cin 메서드의 리턴형이 bool형인데 int 형을 입력받아야 되는데 char형을 입력시
cin의 플래그 상태는 false 인데 이경우 더이상 입력 받을수 없다.
이경우 cin.clear();를 이용하여 플래그 상태를 없애고 버퍼에 담아 있는 내용을 다 읽어 드림으로서
초기화 시켜준다