while(!cin.eof())
{
cin>>N;
inputs.push_back(N);
//cin 상태 초기화
cin.clear();
//입력 버퍼 비움
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
//다음 문자가 enter key라면 입력 종료
if (cin.peek() == '\n')
{
break;
}
}
처음에 다음과 같은 방식으로 문제를 풀었는데 답은 맞게 출력되지만 채점에선 틀림
while(cin>>N && N!='\n')
{
inputs.push_back(N);
cin.clear();
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
if (cin.peek() == '\n')
{
break;
}
}
cin >> N && N != '\n'으로 조건을 설정하게 되면
N으로 \n을 입력받았을 때 cin은 정상적으로 입력을 받고 그 후에 반복문을 종료함
N으로 \n을 입력되어서는 안됨