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;
}
출력:
사용자에게 값을 입력하라는 메시지가 표시되고 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
, fail
및 EOF
의 네 가지 상태가 있음을 알아야 합니다. 위의 코드를 실행할 때 cin
은 양호
상태입니다.
루프 조건으로 cin
을 사용했습니다. 코드 실행이 시작되면 cin
은 양호
상태가 되고 true
를 반환합니다.
따라서 while
루프가 실행되고 사용자에게 a
에 대한 값을 입력하라는 메시지가 표시됩니다.
출력:
잘못된 데이터가 입력되는 즉시 루프가 중단되지 않고 한 번 반복된 후에 중단됩니다.
cin
과 관련된 표준 입력 스트림이 오류 상태
로 들어가면 상태가 양호한 상태
로 재설정되지 않을 때까지 추가 입력을 받을 수 없습니다. cin.clear()
함수를 사용하여 cin
의 유효하지 않은 상태를 지울 수 있으며 cin.ignore(numeric_limits<streamsize>::max(), '\n')
함수를 사용하여 지울 수 있습니다. 스트림에서 잘못된 입력입니다.
이렇게 하면 실행을 중단하지 않고 사용자의 입력을 다시 받을 수 있습니다.
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