숫자에 문자가 들어옴을 예외처리
scanf의 함수 형태는 실제로 다음과같다.
int scanf (매개변수)
여기서 return 값은 입력해주는 매개변수의 개수 or 0 이다.
정수 입력에 정상적으로 정수가 들어가면 매개변수의 개수만큼이 리턴이 되고 정수 입력에 문자가 들어오면 return 값은 0이 된다.
예제를 통하여 살펴보자.
위 코드를 보면 1개를 입력받는 scanf는 1을 리턴하고 3개를 입력 받는 scanf는 3을 리턴한다.
또한 문자가 들어오면 그대로 입력받기를 중단하고 이전까지 받은 개수만큼을 리턴한다.
문자에 숫자가 들어옴을 예외처리
우리는 문자를 아스키코드로 인식한다.
그리고 아스키코드는 숫자값이 있다.
따라서 위와같은 방법으로는 불가능하다.
문자는 그냥 범위를 직접 지정하여 주면 된다.
아스키코드표를 보고 진행하여도 되지만 그냥 원하는 알파벳으로 지정도 가능하다.
아래코드는 숫자가 문자에 들어올때의 예제 + 문자에 숫자가 들어올때의 예제이다.
'언어 > c' 카테고리의 다른 글
라이브러리함수_코딩의순서(기본)_문장의종류_프로그램 실행과정 (0) | 2018.01.29 |
---|---|
문자열이 scanf를 통하여 초기화 될시 남는 배열은 어떻게 될까? (0) | 2018.01.26 |
<c예외처리>scanf를 통하여 알아본 버퍼의 개념_getchar_flush_ (0) | 2018.01.26 |
c_복습(4) 데이터_상수_입출력_조건연산자 (0) | 2018.01.25 |
c_복습(3) 연산자 우선순위_문자열_헤더파일_명령문 (0) | 2018.01.24 |