C언어 강의 5강 - 서식문자 %d
4강에 이어서 5강에서는 서식문자 %d 에 대해서 알아보도록 하겠습니다.
강의게시판에 보면 printf문을 익힌 후 가볍게 풀어볼 수 있는 문제 2문제를 준비해서 올려놓았으니
시간나시는 분들은 문제도 한번 풀어보시길 바랄께요.
5강에서는 서식문자 %d에 대해서 다뤄볼껀데요. 이게 뭔지 설명하기 전에 일단 보고 들어갈께요.
#include <stdio.h>
int main(void)
{
printf("궁금하면 %d원 \n");
return 0;
}
위와 같은 소스코드가 있다면 결과가 어떻게 나올까요?
결과는 아래와 같이 나옵니다.
분명 printf문을 통해 궁금하면 %d원이라는 문장을 출력시키는명령어를 썼는데
궁금하면 %d원이 아닌 궁금하면 17764437원 이라는 문장이 출력되었죠?
이 숫자는 컴퓨터마다 CPU마다 달라질 수 있습니다.
아무튼 숫자가 %d라는 문자 대신 숫자가 출력된다면 정상입니다.
사실 %d는 서식문자라는 건데요.
%d는 10진수 정수를 출력해주는 역할을 하는 서식문자입니다.
그렇기 때문에 %d는 10진수 정수를 출력시키게 된겁니다.
하지만 어떤 10진수 정수를 출력시킬지는 지정해주지 않았기 때문에 랜덤값이 출력되며 17764437이라는 값이 출력된 것이죠.
그렇다면 출력시킬 10진수 정수를 지정해야 된다고 하였는데
어떻게 지정하는지 알려드릴께요.
#include <stdio.h>
int main(void)
{
printf("궁금하면 %d원 \n",500);
return 0;
}
위와 같은 소스코드를 실행시키게 되면 아래와 같은 결과가 나옵니다.
대충 감이 오시나요? %d값을 문자열 뒤에 콤마를 찍은후 지정해주었습니다.
자 쉽게 비교해드릴께요.
여태까지 저희가 알던 printf문을 보면 분명 printf("~~~~"); 로 끝이났었는데요.
이 큰 따옴표로 지정된 곳이 바로 문자열이라는 것은 알고계실겁니다. 큰 따옴표안에 들어간게 문자열인데 큰 따옴표가 끝난 후에 즉 문자열이 끝난 후에 콤마를 찍고 숫자를 써주었습니다. 이 숫자가 바로 %d가 들어갈 데이터가 되는거겠죠?
printf("궁금하면 %d원 \n",500); 으로 소스코드를 작성할경우 %d가 데이터값 500 출력
printf("궁금하면 %d원 \n",1000); 으로 소스코드를 작성할경우 %d가 데이터값 1000 출력
printf("궁금하면 %d원 \n",2000); 으로 소스코드를 작성할경우 %d가 데이터값 2000 출력
이 되는것입니다.
제가 예시로 보여드린건 하나의 데이터 하나의 %d만 출력하고 있는데 여러개의 %d도 출력이 가능합니다. 한번 보여드릴께요.
#include <stdio.h>
int main(void)
{
printf("궁금하면 %d원 + %d원 \n",500,1000);
printf("우유는 %d원 아이스크림은 %d원 과자는 %d원 \n", 1200, 1000 ,2000);
return 0;
}
위의 예시를 보시면
첫번째 문장은 "" 큰따옴표 후에 데이터가 두개가 오고 또한 %d 또한 두개가오죠?
두번째 문장 같은 경우에도 문자열 후에 데이터가 3개 %d 또한 세개가 나옵니다. 이러한 경우도 어떻게 출력이 되는지 예상이 가시나요?
똑같은 원리로 출력이 되는것을 보실수 있습니다.
큰따옴표(문자열) 후에 콤마를 찍은 후 원하는 데이터값지정
여러개라면 다시 콤마후 원하는 데이터값 더 지정
원리는 매우 간단하죠? 여기까지 이해하셨을꺼라고 믿겠습니다.
그렇다면 여기서 궁금증이 생길거에요.
아니그냥 저 문장을 출력하고 싶으면 굳이 궁금하면 500원 이라고 안쓰고 "궁금하면 %d원", 500
이렇게 지정해서 출력하는 이유가 뭐냐? 라고 생각하실거에요
정상적인 생각입니다.
물론 500원을 그냥 쓰셔도 전혀 지장이 없습니다. 하지만 %d 값이 딱 정해진 값이 아니라 상황에 따라
변하는 값이라면 어떻게 될까요?
그런 경우가 있기 때문에 서식문자 %d가 존재하는데요. 그걸 바로 변수 라고하는데
그건 6강에서 다루도록 하겠습니다.
5강에서는 이것만 기억하시면 될거같아요.
%d라는 것은 10진수 정수를 출력하는 서식문자이다.
%d 값에 데이터를 지정해주지 않으면 랜덤값이 출력된다.
%d 값에 데이터를 지정해주는 방법은 문자열 뒤에 콤마를 쓴후 데이터를 적으면 된다.
이 세가지만 기억하시면 되겠습니다.
나머지 자세한 내용은 6강에서 다루도록 할께요.
갑사합니다.
'IT > C언어 강의 (중단)' 카테고리의 다른 글
C언어 강의 7강 - 주석이란 무엇인가? (5) | 2017.12.01 |
---|---|
C언어 강의 6강- 서식문자 %d 와 변수 (0) | 2017.11.28 |
C언어 실습 - Printf 함수 (4강까지 완료후 실습하세요) (2) | 2017.11.28 |
C언어 강의 4강- 이스케이프 시퀀스 (3) | 2017.11.27 |
C언어 강의 3강- main함수 와 printf 함수 (2) | 2017.11.27 |