일반적인 프로그래밍 작업 중 하나는 사용자 입력이 특정 기준을 충족하는지 확인하는 것입니다. 이러한 기준 중 하나는 입력이 유효한 부동 소수점 숫자, 특히 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!