언어/c

(예외처리)입력 상황에 따른 예외처리 (숫자에 문자가..? 문자에 숫자가..?)

leo_____lee 2018. 1. 26. 13:30

숫자에 문자가 들어옴을 예외처리

scanf의 함수 형태는 실제로 다음과같다.

int scanf (매개변수)

여기서 return 값은 입력해주는 매개변수의 개수 or 0 이다.

정수 입력에 정상적으로 정수가 들어가면 매개변수의 개수만큼이 리턴이 되고 정수 입력에 문자가 들어오면 return 값은 0이 된다.

예제를 통하여 살펴보자.

위 코드를 보면 1개를 입력받는 scanf는 1을 리턴하고 3개를 입력 받는 scanf는 3을 리턴한다.

또한 문자가 들어오면 그대로 입력받기를 중단하고 이전까지 받은 개수만큼을 리턴한다.

문자에 숫자가 들어옴을 예외처리

우리는 문자를 아스키코드로 인식한다.

그리고 아스키코드는 숫자값이 있다.

따라서 위와같은 방법으로는 불가능하다.

문자는 그냥 범위를 직접 지정하여 주면 된다.

아스키코드표를 보고 진행하여도 되지만 그냥 원하는 알파벳으로 지정도 가능하다.

아래코드는 숫자가 문자에 들어올때의 예제 + 문자에 숫자가 들어올때의 예제이다.