C에서 숫자 입력 유효성 검사
정수 입력을 처리하는 프로그램에서는 사용자가 유효한 숫자를 제공하는지 확인하는 것이 중요합니다. 불행하게도 atoi() 함수는 여러 자리 정수를 처리할 때 부족합니다. 이 문서에서는 숫자 입력을 확인하는 대체 방법을 살펴봅니다.
failbit 사용
C의 입력 스트림(cin)은 구문 분석할 수 없는 입력을 발견할 때 실패 비트를 설정합니다. 이는 다음과 같이 입력 유효성을 검사하는 데 활용될 수 있습니다.
int n; cin >> n; if(!cin) { // User did not input a number cin.clear(); cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); }
입력 오버플로 처리
정수가 최대 허용 값을 초과하면 cin은 실패 비트도 설정합니다. 이를 방지하려면 입력을 읽기 전에 스트림 상태를 확인하세요.
while(!cin.eof()) { int n; cin >> n; if(!cin) { // Input error occurred cin.clear(); cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); } else { // Valid input process(n); } }
이 루프는 파일 끝(EOF)에 도달할 때까지 계속해서 입력을 읽고 유효성을 검사합니다.
기타 대안
위 내용은 C에서 `atoi()` 이외의 숫자 입력을 확인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!