[C언어] printf() 변환지정자(%) 사용하기

ET의 공부/C언어|2019. 10. 14. 21:48

printf() 함수로 변수를 출력할 때 변수의 데이터형에 따라 변환 지정자(conversion specification)가 다릅니다.

 

예를 들어 정수를 출력할때는 %d, 문자를 출력할 때는 %c를 사용합니다.

 

이러한 printf()의 변환 지정자에는 무엇이 있는지 알아보겠습니다.

 

printf("%d{변환지정자}",i{변수});

 

변환 지정자 데이터 형
%a , %A 16진수 부동소수점수
%c 단일 문자
%d 부호있는(signed) 10진 정수
%e , %E 부동소수점 수(e-)
%f 10진 부동소수점수
%i %d와 같음
%o 부호 없는 8진 정수
%p 포인터
%s 문자열
%u 부호 없는(unsigned) 10진 정수
%x ,%X 부호없는 16진수 정수(x: 0f , X:0F )

 

printf()로 16진수 부동소수점 출력: %a , %A

#include <stdio.h>
 
int main(int argc, const char * argv[]) {
    // insert code here...
    float pi = 3.14;
    printf("3.14의 16진수 부동소수점 출력: %a \n",pi);
    printf("3.14의 16진수 부동소수점 출력: %A \n",pi);
 
    return 0;
}

 

 

printf()로 문자 출력: %c

#include <stdio.h>
 
int main(int argc, const char * argv[]) {
    // insert code here...
    char c = 'c';
    printf("%c\n",c);
 
    return 0;
}

 

 

printf()로 부호 있는 정수 출력: %d

#include <stdio.h>
 
int main(int argc, const char * argv[]) {
    // insert code here...
    int i = 10;
    int j = -10;
    printf("%d\n",i);
    printf("%d\n",j);
 
    return 0;
}

 

 

printf()로 부동소수점 출력(e표기): %e , %E

#include <stdio.h>
 
int main(int argc, const char * argv[]) {
    // insert code here...
    float pi = 3.141592;
    printf("%e\n",pi);
    printf("%E\n",pi);
 
    return 0;
}

% e와 % E의 차이점은 지수 e의 표기가 소문자/대문자인가의 차이입니다. ex) 3.141592 e+00 / 3.141592 E+00

 

 

 

printf()로 10진 부동소수점 출력: %f

#include <stdio.h>
 
int main(int argc, const char * argv[]) {
    // insert code here...
    float pi = 3.141592;
    printf("%f\n",pi);
 
    return 0;
}
 

 

 

printf()로 부호 없는 8진 정수 출력: %o

#include <stdio.h>
 
int main(int argc, const char * argv[]) {
    // insert code here...
    int i = 9;
    printf("%o\n",i);
 
    return 0;
}

 

 

printf()로 포인터 주소 출력: %p

#include <stdio.h>
 
int main(int argc, const char * argv[]) {
    // insert code here...
    int i = 9;
    printf("%p\n",&i);
 
    return 0;
}

 

 

printf()로 문자열 출력: %s

#include <stdio.h>
 
int main(int argc, const char * argv[]) {
    // insert code here...
    char *c = "hello i am ET";
    printf("%s\n",c);
 
    return 0;
}

 

 

printf()로 부호 없는 16진 정수 출력: %x ,  %X

#include <stdio.h>
 
int main(int argc, const char * argv[]) {
    // insert code here...
    int i = 95;
    printf("%x\n",i);
    printf("%X\n",i);
 
    return 0;
}

%x 와 %X 의 차이점은  16진수 표기 알파벳의 소문자/대문자 표기에 따릅니다. ex) %x : 5f, %X : 5F

 

 

감사합니다.

댓글()