본문 바로가기

IT/C언어 강의 (중단)

C언어 강의 5강 - 서식문자 %d

C언어 강의 5강 - 서식문자 %d


4강에 이어서 5강에서는 서식문자 %d 에 대해서 알아보도록 하겠습니다.


강의게시판에 보면 printf문을 익힌 후 가볍게 풀어볼 수 있는 문제 2문제를 준비해서 올려놓았으니


시간나시는 분들은 문제도 한번 풀어보시길 바랄께요.


5강에서는 서식문자 %d에 대해서 다뤄볼껀데요. 이게 뭔지 설명하기 전에 일단 보고 들어갈께요.


#include <stdio.h>


int main(void)

{

printf("궁금하면 %d원 \n");

return 0;

}


5-1.txt


위와 같은 소스코드가 있다면 결과가 어떻게 나올까요?


결과는 아래와 같이 나옵니다.



분명 printf문을 통해 궁금하면 %d원이라는 문장을 출력시키는명령어를 썼는데


궁금하면 %d원이 아닌 궁금하면 17764437원 이라는 문장이 출력되었죠?


이 숫자는 컴퓨터마다 CPU마다 달라질 수 있습니다.


아무튼 숫자가 %d라는 문자 대신 숫자가 출력된다면 정상입니다.


사실 %d서식문자라는 건데요. 


%d는 10진수 정수를 출력해주는 역할을 하는 서식문자입니다.


그렇기 때문에 %d는 10진수 정수를 출력시키게 된겁니다. 


하지만 어떤 10진수 정수를 출력시킬지는 지정해주지 않았기 때문에 랜덤값이 출력되며 17764437이라는 값이 출력된 것이죠.


그렇다면 출력시킬 10진수 정수를 지정해야 된다고 하였는데


어떻게 지정하는지 알려드릴께요.


5-2.txt



#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도 출력이 가능합니다. 한번 보여드릴께요.


5-34.txt


#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강에서 다루도록 할께요.


갑사합니다.