Profile

youngsouk

youngsouk

C언어 scanf + 아스키 코드 + 형변환

오늘은 C언어에서 키보드로부터의 입력을 받는 함수(기능)인 scanf에 대해 알아보겠습니다. 먼저 scanf 함수의 기본적인 사용법은

 scanf("서식문자들", &변수1, &변수2 ...); 입니다.

 

※서식문자에 대해 잘 모르시는 분은

 

2019/02/04 - [프로그래밍] - C언어 printf + 서식문자 + 특수문자

 

여기를 참고해주세요!

 

사용법을 말로만 들어서는 이해가 잘 안되실 테니 예를 들어드리겠습니다.

여기서 scanf대신에 scnaf_s를 쓴 이유는 scanf라는 함수가 취약점을 가지고 있기때문에 제가 사용하고 있는 Visual Studio에서는 사용을 금지하고 있고, 그 대안으로 scnaf_s 를 쓰라고 하기 때문입니다. 또 이 함수를 사용하실 때 주의하셔야 할점이 변수명 앞에 &를 꼭!! 붙여주셔야 합니다!! 그 이유는 scanf라는 함수가 동작하려면 인자(재료)로 변수의 메모리(RAM)주소값을 받기 때문입니다. 이 부분이 잘 이해가 안가신다면 이것에 대한 이해는 나중에 C언어의 꽃이라고 할 수 있는 포인터에 대한 부분으로 미뤄두시고, 변수명 앞에 꼭 &를 붙여야한다는것만 명심하시면 됩니다.

 

다음으로 아스키 코드에 대해 알려드리겠습니다. 문자를 숫자로 표현하는 방법이라고 이해하시면 됩니다. 그 이유는 아래에 있는 아스키 코드가 정리되어 있는 표를 보시면 이해가 되실겁니다.

 

이재욱님이 만드신 아스키코드표

 

이런 아스키 코드가 궁금할 때마다 찾는것은 번거로우니 우리가 문자를 입력하면 그 아스키 코드 값을 출력하는 프로그램을 만들어 봅시다.

1. char 형 변수나 int 형 변수를 1개 선언    2.  1 개의 문자를 입력받는다(scanf)    3. printf함수로 int 형으로 형변환 한 변수(1번에서 선언) 출력 

 

저기 적혀 있는 (int)a가 바로 형변환이라고 불리는 것입니다. 형변환의 기본적인 사용법은 (자료형) (변수나 계산식)입니다. 이 형변환의 기능은 말그대로 앞에 적혀있는 자료형으로 변수나 게산식을 변환해주는 기능입니다. 몇가지 예를 들어드리겠습니다.

저렇게 int 형(정수)로 변환해서 출력해주는것을 알 수 있습니다.

여담으로 저기서 %.0lf로 출력했을 때와 int형(정수)으로 출력을 했을 때의 차이점은 %.0lf로 출력했을 때는 저 c라는 소수가 반올림되서 출력되고, int형(정수)으로 변환해서 출력하면 소수점은 버림되서 출력되게 됩니다.

 

 

이상으로 C언어 scanf + 아스키 코드 + 형변환에 대한 강좌를 마치겠습니다. 봐주셔서 정말 감사합니다!!