>백엔드 개발 >C++ >C에서 사용자 입력을 Double로 강력하게 검증하는 방법은 무엇입니까?

C에서 사용자 입력을 Double로 강력하게 검증하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-22 20:54:10357검색

How to Robustly Validate User Input as a Double in C  ?

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

일반적인 프로그래밍 작업 중 하나는 사용자 입력이 특정 기준을 충족하는지 확인하는 것입니다. 이러한 기준 중 하나는 입력이 유효한 부동 소수점 숫자, 특히 double인지 확인하는 것입니다. C에서 이 유효성 검사에 접근하는 방법은 다음과 같습니다.

기본 유효성 검사 접근 방식

double x;

while (1) {
  cout << ">";
  if (cin >> x) {
    // valid number
    break;
  } else {
    // not a valid number
    cout << "Invalid Input! Please input a numerical value." << endl;
  }
}

이 코드는 표준 입력에서 double을 읽으려고 시도하여 기본 유효성 검사를 제공합니다. 입력이 성공적으로 읽혀지면 프로그램을 계속 진행합니다. 그렇지 않으면 오류 메시지가 출력됩니다.

무한 입력 루프 수정

단, 위 코드로 인해 올바른 입력이 있어도 프로그램이 계속해서 오류 메시지를 출력할 수 있습니다. 그 이유는 cin >> x 행은 유효하지 않은 입력으로 인해 실패하고 입력 스트림에 오류 플래그가 설정된 채로 남아 있습니다. 이 문제를 해결하려면 잘못된 입력이 감지된 후 오류 상태를 지워야 합니다.

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 to discard invalid input
  }
}

cin.clear() 줄은 오류 플래그를 지우고 후속 빈 루프는 나머지 잘못된 문자를 사용합니다. 입력 라인에서. 이렇게 하면 다음 입력 시도가 깨끗한 상태에서 시작됩니다.

이러한 단계를 수행하면 C에서 사용자 입력을 double로 효과적으로 검증하여 강력하고 사용자 친화적인 입력 검증 메커니즘을 제공할 수 있습니다.

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

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