본문 바로가기

C++ Programming/Accelerated C++

cin의 버퍼에 값이 남아있다면

double x;
while(cin >> x)
   vec.push_back(x);

1
2
3s
라는 것을 입력했다면 마지막에 입력한 숫자인 3이 벡터에 들어가고 
하지만 cin버퍼에는 s가 들어가 있어서 다음에 cin으로 받을려고 하면 그냥 넘어가버립니다. 

이런 경우 어떻게 cin에 있는 버퍼를 지울수가 있을까?

       
if(cin.fail())
{
   cin.clear();
   cin.ignore(256,'\n');
 }