>백엔드 개발 >C++ >C에서 이중 사용자 입력을 올바르게 검증하는 방법은 무엇입니까?

C에서 이중 사용자 입력을 올바르게 검증하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-01 20:44:14593검색

How to Properly Validate Double User Input in C  ?

C에서 사용자 입력의 유효성 검사

수치 데이터 작업 시 사용자 입력의 정확성을 보장하는 것이 중요합니다. 이 기사에서는 C에서 사용자 입력을 이중으로 효과적으로 검증하는 방법을 살펴봅니다.

문제 이해:

제공된 코드는 사용자 입력을 이중으로 검증하려고 시도합니다. 그러나 입력이 유효하지 않은 경우 후속 입력에 대한 메시지를 표시하지 못하여 오류 메시지의 무한 루프가 발생합니다.

해결책:

이 문제를 해결하려면 오류 상태를 지우고 이전에 입력한 잘못된 문자를 삭제하려면 필요합니다. 이는 다음 코드를 사용하여 달성할 수 있습니다.

while (1) {
  if (cin >> x) {
      // valid number
      break;
  } else {
      // not a valid number
      cout << "Invalid Input! Please input a numerical value." << endl;
      cin.clear();
      while (cin.get() != '\n') ; // empty loop
  }
}

이 수정된 코드에서:

  • cin.clear(): 오류 상태를 지웁니다.
  • while (cin.get() != 'n') ;: 이전 줄에 입력된 잘못된 문자를 모두 삭제합니다. 이 루프는 개행 문자('n')를 만날 때까지 계속되어 입력 버퍼를 효과적으로 비웁니다.

위 내용은 C에서 이중 사용자 입력을 올바르게 검증하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.