안녕하세요,
벌써 7강이네요.
이번에는 scanf 함수에 대해
해보도록 하겠습니다.
우리는 지금까지
모니터에 데이터를 출력을 하는 printf()함수에 대하여 했었습니다/
그러면 scanf()함수가 뭔가 하면
키보드(입력장치)로 데이터를 입력 하는 함수 입니다.
참고
이렇게 입력장치로 부터 데이터를 입력 받는 것이
표준 입력이라고 합니다.
자 scanf() 함수도 표준 라이브러리 함수 이므로
stdio.h 헤더 파일에 정의가 되있습니다.
그럼 printf() 함수와 같이 사용을 하려면 stdio.h 파일을 include 해야겠죠?
scnaf()함수의 기본 구조
먼저
큰따옴표 안의 입력을 위한 서식 문자를 입력해 주고
그 뒤에 큰따옴표를 나와서 반점을 찍고 그 데이터를 저장할 변수 이름을 작성해 주시면 되겠습니다.
위의 변수는
다음 강좌에 자세히 다루도록 하겠습니다.
이제 예제를 보시죠.
위의 예제를 실행 시키면
"숫자를 입력하세요 : "라는 문장이 출력이 되고
기다립니다.
자 우리가 숫자를 입력하면
이렇게 "입력한 숫자 : %d(입력한숫자)"가 출려이 됩니다.
자 이렇게 scanf()함수는 간단합니다.
자 근데 여기서
&i가 뭔지 궁금해 하시는 분들이 많으실 겁니다.
이것은 변수i의 메모리 주소라고 보시면 되겠습니다.
자 또 서식 문자가 궁금 하신 분이 계실텐데
그것은 다섯번째 강좌에 했던 것과 동일 합니다.
서식 문자 | 출력 형태 |
%d | 10진수 정수 (int형 정수) |
%x | 16진수 정수 |
%o | 8진수 정수 |
%f | 10진수 실수 (float형 실수) |
%c | 한 개의 문자 입력(예 : 'A') 참고 : 1바이트 |
%s | 문자열 입력(예 : "Hello") 참고 : 2바이트 이상 |
%u | 10진수 정수 (양수만 표현 가능) |
%lf | 10진수 정수 (double형 실수) |
여기서
참고로
%c와 %s가 있습니다.
그래서 %c와 같은건 'a'와 같은 하나의 문자를 사용하는게 맞습니다.
하지만
▦ 이런 특수 문자는 하나의 문자라도 크기가 3바이트이므로
문자로 취급이 되지 않고 문자열로 취급이 됩니다.
자 이렇게 특수 문자를 입력하시면
그 특수문자가 출력이 되지 않고 ?가 출력이 됩니다.
문자열을 입력하는 방법은 나중 강좌에 구체적으로 설명하도록 하겠습니다.
또
여기에 실수형이 2개가 있습니다.
%f와 %lf가 있습니다.
%f는 float %lf는 double
이것은 다음 강좌에서 자세하게 하도록 할껀데요.
실수는 소수인걸 알고는 계실겁니다.
float보다 double이 더욱더 범위가 크기 때문에 좀 소수가 많이 내려간다 싶으시면
double형을 쓰시는걸 추천드립니다.
scanf()함수 에러 참고.
심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태
오류 C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 강좌 e:\visual ssudio 2015\projects\강좌\강좌\scanf.c
이건 비주얼 스튜디오에만 있는 특이한 에러입니다.
이것은 C4996에러 인데요.
이것은 SDL 검사가 켜져 있기 때문에 일어나는 에러 입니다.
SDL 검사는 세번째 강좌에 살짝 설명이 되있으므로 참고해 두시고
이것을 푸는 방법은 되게 간단 합니다.
먼저 소스 코드를 오른쪽 클릭해서
속성을 들어가 줍시다.
그러면 들어가서 C/C++을 클릭해 주시고
SDL 검사를 아니요롤 바꿔 주신다음
확인을 눌러주시면 되겠습니다.
자 이렇게 이번 강좌 마무리 하고요
궁금 하신점은 댓글 남겨 주시고
봐주셔서 감사합니다.