HOWTO · C++

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

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') 함수를 사용하여 지울 수 있습니다. 스트림에서 잘못된 입력입니다.

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