문자 입력으로 숫자 입력을 기대할 때 cin을 사용하는 무한 루프
문제의 코드는 대신 문자를 입력할 때 cin을 사용하는 무한 루프를 포함합니다. 기대되는 숫자.
무한대에 대한 설명 루프
cin이 숫자가 아닌 입력을 만나면 실패 상태로 들어가고 추가 입력을 위한 명령줄 프롬프트를 중지합니다. 이로 인해 사용자 상호 작용 없이 루프가 계속 실행됩니다.
cin으로 잘못된 입력 감지
이 문제를 방지하고 잘못된 입력을 감지하려면 cin이 다음과 같은지 확인할 수 있습니다. 다음을 사용하여 실패 상태에서:
if (cin.fail()) { // Handle invalid input here }
실패 상태가 발생하면 이를 지우고 잘못된 입력을 삭제할 수 있습니다. 사용:
cin.clear(); cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
이렇게 하면 cin이 작동 상태로 재설정되어 계속해서 입력 메시지를 표시할 수 있습니다.
더 정교한 검증을 위해 문자열 입력 스트림을 사용하여 입력 문자를 확인할 수 있습니다. 문자별로 더 고급 검증을 수행합니다.
위 내용은 숫자가 아닌 입력으로 'cin'이 무한 루프를 일으키는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!