Algorithm/C언어

[ 2. C언어의 기본 - 서식문자 ]

대시 2021. 9. 30. 10:19

이번 포스트는 C언어에서의 Printf 함수의 서식문자와 특수문자를 알아보도록 하겠습니다.

 

1) 서식문자란 ?

변수를 표현해주는 특수한 문자를 말한다. 

 

서식문자 출력대상 (자료형) 출력 형태
%d char, short, int 부호 있는 10진수 정수
%ld long 부호 있는 10진수 정수
%lld  long long 부호 있는 10진수 정수
%u unsigned int 부호 없는 10진수 정수
%o unsigned int 부호 없는 8진수 정수
%x, %X unsigned int 부호 없는 16진수 정수
%f float, double 10진수 방식의 부동소수점 실수
%Lf long, double 10진수 방식의 부동소수점 실수
%e, %E float, double e 또는 E 방식의 부동소수점 실수
%c char, short, int 값에 대응하는 문자
%s  char * 문자열
%p  void * 포인터의 주소 값

 

1) 정수의 출력을 위한 서식문자 : %d, %u, %o, %x 

unsigned는 양의 정수만 출력이 가능한 것을 말한다. 

양의 정수만 출력이 가능한 이유는 8진수, 16진수는 음의 정수 표현에 거의 사용되지 않기 때문이다.

 

2)실수의 출력을 위한 서식문자 : %f, %e, %g

 

#include <stdio.h>
int main(){
 
  int a = 67.89;
  
  printf("%d\n", a);
  printf("%f\n", a);
  printf("%c\n", a);
  printf("%x\n", a);
}
cs

 

코드를 보면 int형 변수 a가 선언되어 있고, 그 값을 67.89로 넣어뒀다.

 

위 코드실행 결과가 어떻게 출력될까?

 

1) %d는 위에 표를 보면 정수만을 출력하는 서식문자라고 이야기했다. 즉, 소수점이 붙어있어도 정수만 출력한다는 것

   출력 결과 : 67

 

2) %f는 실수형으로 float와 double형 변수를 출력대상으로 하고 있다. 즉, 소수점까지 출력해주긴 하나 예제에서는

   int 타입으로 선언되었기 때문에 출력 결과는 0.000000으로 출력결과가 나오지 않는다.

 

3) %c는 문자를 출력해준다.  대표적으로 char형이 있지만 int와 short도 지원한다.

   67을 문자열로 출력하면 결과는 어떻게 될까? 출력 결과는 C 이다. 

   왜 숫자가 문자로 출력이 되었을까? 이는 컴퓨터가 문자를 숫자로 받아 들이기 때문이다.

   문자의 코드값을 아스키 코드라고 하는데, 이 값을 참조하면 65 = A, 66 = B, 67 = C 가 된다.

    

4) %x는 16진수로 출력되기 때문에 결괏값은 43이다. 

 

이상 서식문자 포스팅 끝.