>백엔드 개발 >C++ >C에서 `cin`을 사용하여 강력한 입력 유효성 검사를 어떻게 구현할 수 있나요?

C에서 `cin`을 사용하여 강력한 입력 유효성 검사를 어떻게 구현할 수 있나요?

Linda Hamilton
Linda Hamilton원래의
2024-12-29 04:51:09269검색

How Can I Implement Robust Input Validation with `cin` in C  ?

C에서 cin을 사용하는 좋은 입력 유효성 검사 루프

C 초보자로서 효과적인 입력 유효성 검사 기술을 이해하는 것이 중요합니다. 이는 표준 입력 스트림 cin을 사용할 때 특히 중요합니다. 이 기사에서는 사용자 입력을 검증하는 일반적인 루프 기반 접근 방식을 살펴보고 더 명확하고 간결하다고 여겨지는 대체 접근 방식을 강조하겠습니다.

원래 루프:

구성한 입력 유효성 검사 루프는 do-while 루프를 사용하여 사용자에게 입력하라는 메시지를 반복적으로 표시하고 입력 내용을 확인합니다. 오류:

int taxableIncome;
int error;

do {
    error = 0;
    cout << "Please enter in your taxable income: ";
    cin >> taxableIncome;
    if (cin.fail()) {
        cout << "Please enter a valid integer" << endl;
        error = 1;
        cin.clear();
        cin.ignore(80, '\n');
    }
} while (error == 1);

대체 접근 방식:

대체 접근 방식은 for 루프를 사용하고 cin 입력 스트림에서 오류를 확인하는 것입니다. 루프:

int taxableIncome;

for (;;) {
    cout << "Please enter in your taxable income: ";
    if (cin >> taxableIncome) {
        break; // Valid input received
    } else {
        cout << "Please enter a valid integer" << endl;
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(), '\n');
    }
}

비교:

두 접근 방식 모두 입력 유효성 검사 목표를 달성하지만 대체 접근 방식은 다음과 같은 특정 이점을 제공합니다.

  • 더 짧고 더 간결함: 오류가 필요하지 않음 flag.
  • 무시되는 문자에 제한 없음: 임의의 값 80 대신 숫자_한계::max()를 사용하여 새 줄이 나타날 때까지 나머지 모든 문자를 무시합니다.
  • 향상된 오류 처리 가능성: 원하는 경우 내에서 개별적으로 다양한 유형의 입력 오류를 처리할 수 있습니다.

결론:

원래 루프는 입력을 확인하는 기능적인 방법인 반면, 대체 접근 방식은 많은 C 프로그래머가 선호합니다. 단순성과 유연성. 불필요한 변수를 제거하고 표준 라이브러리 기능을 사용하여 입력 검증을 위한 보다 간편하고 효율적인 솔루션을 제공합니다.

위 내용은 C에서 `cin`을 사용하여 강력한 입력 유효성 검사를 어떻게 구현할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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