while(cin) //입력이 성공했으면 루프실행.

"이것은 디스크 고장과 같은 다른 결함까지도 탐지하므로 !cin.fail() 이나 !cin.eof()보다 좀더 일반적으로 사용된다."

이런 글이 있거든요. 이게 이해가 잘않가는데 ㅠㅠ;

while(cin.get(ch)) //입력이 성공했으면 루프실행
{                      
  ....                    //일을 처리한다.
}

"루프조건을 검사하기 위해, 프로그램은 먼저 cin.get(ch)를 호출하고, 입력이 성공적이면 ch에 값을 넣는다. 그러고 나서 프로그램은 함수 호출의 리턴값으로 cin을 얻는다. 이렇게 얻어진 cin에 bool 변환을 적용 하는데, 입력이 성공이면 true로 변환하고, 그렇지 않으면 false로 변환한다. 이것은(종료 조건을 파악하고, 조건을 초기화하고, 조건을 갱신하는) 세 가지 처리를 하나의 루프 조건 검사에 모두 포함한다."

이말도 이해가 너무 않가내요 --; 리턴값으로 cin이라는 "객체"를 리턴한다던데 무슨말? 인지..;