int fill_array(double ar[], int limit)

{

using namespace std;

double temp;

int i;

for (i = 0; i < limit; i++)

{

cout  << (i + 1) << "번 부동산의 가격: $";

cin >> temp;

if (!cin) // 입력 불량

{

cin.clear();

while (cin.get() != '\n')

continue;

cout << "입력 불량; 입력 과정을 끝내겠습니다.\n";

break;

}

else if (temp < 0) // 루프 탈출을 위한 음수 값

break;

ar[i] = temp;

}

return i;

}


빨간색 부분인데..부동산가격 입력하는 함수에여 근데 저 조건부가 어찌돌아가는지 몰라서 실행해보니


당연하겠지만 양의정수 이외의 수나 문자등을 입력하면 저 if문이 실행되는데 !cin에서 이건 어떻게 검사를하는거에요?


데이터형을 검사하나..?cin의 뭘가지고 검사를 하는거죠? if(!temp)도아니고 if(!cin)일케쓰니까 cin을 ㅇ뭘 어떻게 해석해야할지 몰겠음..


더 좆같은건 ㅊ책에서도 그런 설명이 없어여 힝