이것은 hw입니다. 내 교수에게 왜 다음 코드가 while 루프를 빠져 나가지 않을지 물어 보았습니다. 그리고 그/그녀는 저에게 말할 수 없었습니다. 입력 스트림에 더 이상 읽을 값이 없으면 cin은 false 값을 반환하고 while 루프를 종료해야합니다. 내 것이 아닙니다. 루프를 통해 입력 값 (정수 집합)을 읽은 상태로 유지 한 다음 더 많은 입력을 기다리는 것 같습니다. 아무도 그 이유를 말할 수 있습니까? 아래는 코드입니다. cin
스트림을 확인하고 cin
파일의 문자 또는 오류의 종료가 발생하면 거짓이 같은cin의 LCV가있는 루프가 C++에서 종료되지 않습니다.
# include <iostream>
using namespace std;
int main()
{
int iEvenSum = 0;
int iOddSum = 0;
int iNum;
// prompt user
cout << "Input any set of integers, separated by a space:\n";
cin >> iNum;
cout << "You input: ";
while (cin)
{
cout << iNum << " ";
if (iNum % 2 == 0)
iEvenSum = iEvenSum + iNum;
else
iOddSum = iOddSum + iNum;
cin >> iNum;
}
cout << "\n\nThe sum of Even numbers is " << iEvenSum << "." << endl;
cout << "The sum of Odd numbers is " << iOddSum << "." << endl;
return 0;
}
루프를 멈추려 고 시도한 것은 무엇입니까? 입력을 멈추는 것만으로 아무것도 바뀌지 않을 것입니다 :'cin'은 다른 입력을 기다립니다. – Walter