>백엔드 개발 >C++ >C에서 강력한 입력 유효성 검사 루프를 구현하는 방법은 무엇입니까?

C에서 강력한 입력 유효성 검사 루프를 구현하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-14 00:31:17239검색

How to Implement Robust Input Validation Loops in C  ?

cin - C를 사용한 좋은 입력 유효성 검사 루프

입력 유효성 검사

입력 작업 시 사용자의 입력 유효성을 검사하는 것은 데이터 무결성을 보장하고 오류를 방지하는 데 중요합니다. 효과적인 방법 중 하나는 루프를 사용하여 유효한 입력이 제공될 때까지 사용자에게 반복적으로 메시지를 표시하는 것입니다.

제안된 루프

질문은 입력 유효성 검사를 위한 루프를 제공합니다.

int taxableIncome;
int error;

// input validation loop
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);

일반적인 접근 방식

루프 동안 작동한다면 입력 유효성 검사에 접근하는 더 일반적이고 틀림없이 더 나은 방법이 있습니다.

예외 처리

예외 처리는 입력 오류를 처리하는 보다 직접적인 방법을 제공합니다. istringstream 및 try-catch 블록을 사용하면 오류 코드에 의존하지 않고 입력의 유효성을 검사하고 오류를 처리할 수 있습니다. 예:

int taxableIncome;
string input;

while (true)
{
    cout << "Please enter in your taxable income: ";
    getline(cin, input);
    istringstream iss(input);
    if (!(iss >> taxableIncome))
    {
        cout << "Please enter a valid integer" << endl;
        continue;
    }
    break;
}

검증이 포함된 무한 루프

또 다른 접근 방식은 입력을 지속적으로 검증하고 필요에 따라 사용자에게 수정을 요청하는 무한 루프를 사용하는 것입니다.

int taxableIncome;

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

선택 접근 방식

가장 좋은 접근 방식은 애플리케이션의 특정 요구 사항에 따라 다릅니다. 예외 처리는 보다 현대적이고 강력한 방법인 반면, 무한 루프는 입력 유효성 검사를 처리하는 간단하고 직접적인 방법을 제공합니다.

위 내용은 C에서 강력한 입력 유효성 검사 루프를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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