지금까지 배웠던 것들은 그냥 프로그램 화면에 글자만 출력하는거였죠?
오늘은 직접 키보드로 데이터를 입력 받는 방법을 배울 겁니다.
데이터를 입력받을 때 쓰는 함수는 'scanf'라는 함수입니다.
scanf함수의 사용법은 printf함수와 매우 비슷합니다.
아래는 기본적인 사용법입니다.
"scanf("%d", &num);" 이 문장은 키보드로부터 입력받은 정수를 변수 num에 저장하라는 뜻입니다.
Chapter 04에서 printf함수의 %d는 10진수 정수를 출력한다는 의미라고 했습니다.
그럼 scanf에서는 무슨의미 일까요?
그렇죠 반대로 10진수 정수를 입력한다 라는 의미입니다.
그런데 여기서는 변수앞에 '&'라는 연산자가 붙었습니다.
우리는 아직 이 연산자가 의미하는 바에 대해 이해하기 힘들어요.
그래서 일단은 대충 (또 대충이 나왔습니다. 지겨우시죠? 어쩔수 없습니다.) 넘어가도록 합시다.
이는 나중에 '포인터'에 대해 깊이 배운 후에 이해 할수 있는 내용이니 지금은 그냥
"scanf함수를 사용하려면 변수 이름 앞에 & 연산자를 꼭 붙여야 한다"
라고만 기억합시다.
예제 한 번 보겠습니다.
그런데!
비주얼 스튜디오 2012 버전 이상부터는 scanf함수를 사용할 때
라는 오류를 발생시킬 겁니다.
이 오류가 왜 발생하느냐,
이는 '오버플로우'라는 개념때문에 발생합니다.
scanf함수를 사용 할 시 오버플로우가 발생할 수 있으므로 scanf_s 함수를 사용하십시오. 라는 오류인데요,
아직 오버플로우에 대한 이해는 필요없습니다.
우리가 scanf함수를 쓰면서도 오버플로우는 발생할 일이 없을겁니다.
일단 오류를 없앱시다.
'프로젝트' - 'ConsoleApplication1 속성'에 들어갑시다. (ConsoleApplication1은 우리가 처음 만들었던 프로젝트 이름입니다.)
'C/C++' - '전처리기'를 클릭 하신 후
화살표 클릭 하신 후 '편집'
_CONSOLE 밑에
_CRT_SECURE_NO_WARNINGS 라고 입력 하신 후 '확인'
그러면 정상적으로 실행이 될겁니다.
실행결과 보시죠
scanf함수를 한 번만 쓰고 여러 데이터를 입력할 수 있습니다.
이렇게요.
실행 결과
여기서 주의 할 점!
scanf("%d %d, &num1, &num2);" 에서 %d와 %d 사이에 , 을 붙이시면 안됩니다.
물론 붙여도 되지만 붙이게 된다면
이렇게 됩니다.
, 붙인다면 어떻게 입력해야하느냐?
이렇게 입력 할 때도 , 을 붙여야 됩니다.
scanf 함수는 공백을 기준으로 데이터를 구분하므로 데이터를 여러 개 입력할 때 스페이스바, 탭 또는 엔터를 입력해야합니다.
다음으로 C언어의 키워드에 대해 알아보겠습니다.
앞에서 본 int, return같은 단어들은 이미 그 기능이 정해져 있습니다.
이렇게 기능이 이미 정해져 C언어 문법을 구성하는 단어들은 '키워드'라고 합니다.
C언어의 키워드종류를 몇 개 알려드리자면 대충
auto break case char
const continue if do
while for else sizeof
이 보다 훨씬 많지만 대충 이 정도 있습니다.
이런 키워드는 변수나 함수 이름으로 사용할 수 없습니다.
당연한 거죠.
이번 강의는 여기서 마치도록 하겠습니다.
Chapter - 07 에서는 컴퓨터의 데이터 표현방식에 대해 다룹니다.
다음 강의 때 뵙겠습니다.
'C언어 강의' 카테고리의 다른 글
(C언어 강의) Chapter -08 비트 연산자 (2) | 2016.07.06 |
---|---|
(C언어 강의) Chapter -07 컴퓨터의 데이터 표현방식 (0) | 2016.07.04 |
(C언어 강의) Chapter -05 변수와 연산자 - 2 (0) | 2016.07.02 |
(C언어 강의) Chapter -05 변수와 연산자 - 1 (0) | 2016.07.02 |
(C언어 강의) Chapter -04 printf함수 파헤치기 (0) | 2016.07.01 |