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;
}

여기서  

while(!(cin>>golf[i])){
cin.clear();
while(cin.get() != '\n')
continue; 

이부분이 초기화 부분이다 .  

cin.clear() 이부분은 cin 메서드의 리턴형이 bool형인데 int 형을 입력받아야 되는데 char형을 입력시 

cin의 플래그 상태는 false 인데  이경우 더이상 입력 받을수 없다.

이경우 cin.clear();를 이용하여 플래그 상태를 없애고 버퍼에 담아 있는 내용을 다 읽어 드림으로서 

초기화 시켜준다 


 

'Soft Ware > C++ 언어!!' 카테고리의 다른 글

Template 을 이용한 Swap  (0) 2011.10.22
확률 계산 시 부동소수점 오버플로  (0) 2011.10.21
cin 에 대해서 !!!  (0) 2011.10.19
삼항연산자!!  (0) 2011.10.19
생성자, 소멸자 , 복사 생성자  (0) 2011.10.07