C++를 사용한 While 루프의 문자 입력

Muhammad Husnain 2024년2월15일
C++를 사용한 While 루프의 문자 입력

이 간단한 가이드에서는 C++에서 입력을 처리하는 방법에 대해 설명합니다. 또한 사용자의 잘못된 입력 문제를 해결하는 문제를 살펴볼 것입니다. 마지막으로 while 루프를 사용하여 사용자로부터 입력을 받는 방법에 대해 설명합니다.

첫째, C++에서 사용자로부터 입력 데이터를 받는 절차를 알아야 합니다. C++의 iostream 라이브러리는 cin 기능을 제공합니다. 사용자로부터 입력을 받아 사용되는 변수에 값을 저장합니다.

코드 예:

int x;
cin >> x;

이 코드에서 x는 라인 번호 1에서 선언된 정수 변수이고 입력은 라인 번호 2에서 가져옵니다. cin은 사용자에게 데이터를 입력하고 해당 데이터를 변수 x에 저장하라는 메시지를 표시합니다. 이 값은 정수 값이어야 합니다. 그렇지 않으면 값이 x에 부분적으로 저장되거나 저장되지 않습니다.

C++에서 cin 함수와 함께 while 루프 사용

사용자가 유효하지 않은 데이터를 입력할 때까지 여러 입력을 받고자 하는 또 다른 예를 고려하십시오. 유효하지 않은 데이터가 입력되면 입력을 닫아야 합니다.

암호:

int main() {
  int a;
  ;
  while (cin >> a) {
    cout << "You entered the correct input value" << endl;
  }
  cout << "Sorry, you have entered wrong type of data." << endl;
}

출력:

사용자가 유효하지 않은 데이터를 입력할 때까지 여러 입력을 받으려면 while cin을 사용하십시오

사용자에게 값을 입력하라는 메시지가 표시되고 int 값인 2 값을 입력했습니다. 따라서 루프가 계속 반복되고 다시 사용자에게 메시지가 표시됩니다.

세 번 시도한 후 int 유형이 아닌 일부 문자(예: abc)를 입력했습니다. 이로 인해 표준 입력 스트림(cin과 연결됨)이 파괴되고 cin >> a 표현식은 false를 반환합니다.

따라서 루프가 끊어지고 제어가 루프 외부 라인으로 이동합니다. 일부 유효하지 않은 데이터가 이러한 방식으로 입력되지 않도록 제한할 수 있습니다.

동일한 작업을 수행하는 다른 방법이 다음 예에 나와 있습니다.

암호:

int main() {
  int a;
  ;
  while (cin) {
    cin >> a;
    cout << "You entered the correct input value" << endl;
  }
  cout << "Sorry, you have entered a wrong type of data." << endl;
}

cin에는 good, bad, failEOF의 네 가지 상태가 있음을 알아야 합니다. 위의 코드를 실행할 때 cin양호 상태입니다.

루프 조건으로 cin을 사용했습니다. 코드 실행이 시작되면 cin양호 상태가 되고 true를 반환합니다.

따라서 while 루프가 실행되고 사용자에게 a에 대한 값을 입력하라는 메시지가 표시됩니다.

출력:

사용자가 일부 유효하지 않은 데이터를 입력할 때까지 다중 입력을 수행하려면 while cin 사용 2

잘못된 데이터가 입력되는 즉시 루프가 중단되지 않고 한 번 반복된 후에 중단됩니다.

cin과 관련된 표준 입력 스트림이 오류 상태로 들어가면 상태가 양호한 상태로 재설정되지 않을 때까지 추가 입력을 받을 수 없습니다. cin.clear() 함수를 사용하여 cin의 유효하지 않은 상태를 지울 수 있으며 cin.ignore(numeric_limits<streamsize>::max(), '\n') 함수를 사용하여 지울 수 있습니다. 스트림에서 잘못된 입력입니다.

이렇게 하면 실행을 중단하지 않고 사용자의 입력을 다시 받을 수 있습니다.

Muhammad Husnain avatar Muhammad Husnain avatar

Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.

LinkedIn

관련 문장 - C++ Loop