본문 바로가기

프로그래밍/C & C++

[C] cf. 형식문자(Format Character)

1. 형식 문자(Format Character)

데이터를 입/출력 할 때, 컴퓨터가 그 Type을 인식할 수 있도록, 데이터의 해석을 지시해주는 문자이다. 우리가 흔히 사용하는 scanf와 printf에서 주로 사용되며, %c, %d, %f 등과 같은 문자를 의미한다. 형식 문자가 사용되는 이유는, 같은 데이터라도 해석하는 방향에 따라 다른 문자가 될 수 있기 때문이다. 예로, 'a'라는 알파벳 소문자 데이터는 단일 character로 인식하는 경우(%c) a를 출력하지만, 정수로 인식하는 경우(%d) 97을 출력할 수 있다. 따라서 C 언어에서는 다양한 형식 문자를 지원한다.


- %c : char, short, int단일 바이트 문자 입/출력에 사용.

- %d, %i : char, short, int, 부호 있는 10진수 정수.

- %lld : long long, 부호 있는 10진수 정수.

- %u : unsinged int, 부호 없는 10진수 정수.

- %o : unsinged int, 부호 없는 8진수 정수.

- %x(%X) : unsinged int, 부호 없는 16진수 정수.(x는 a,b,c,d,e,f, X는 A,B,C,D,E,F를 사용)

- %f : float, double, 부호 있는 10진수 값을 표현하며, 부동소수점 형식으로 사용. 기본적으로 소수점 6자리까지 표현.

- %lf : long double, 부호 있는 10진수 값을 표현하며, 부동소수점 형식으로 사용. 기본적으로 소수점 6자리까지 표현.

- %e(%E) : float, double, 부호 있는 10진수 값을 표현하며, e, E를 이용한 지수형으로 표현. 

- %g(%G) : float, double, 부호 있는 10진수 값을 표현하며, 기본적으로 %f와 동일하나, 필요시 %e와 동일.

- %s : 문자열, 단일 바이트 문자의 연속(array of character).

- %p : 포인터 유형, 인수를 16진수로 된 주소로 표시.

참조 : https://msdn.microsoft.com/ko-kr/library/hf4y5e3w.aspx


위의 형식문자들을 이용해 출력 형식에 옵션을 줄 수도 있다. %10s와 같이 숫자를 적는 경우, 출력에 있어서 숫자로 기입한 만큼의 공간을 할당해 준다. 정수와 실수의 출력에 있어 %05d와 같은 형식은 출력될 공간을 할당해주고, 남은 부분을 0으로 채워준다.  또한 할당받은 공간에서 기본적으로 오른쪽 정렬이나, -옵션을 통해서 왼쪽정렬로 변경할 수 있다. 예로 %-5d와 같은 경우는, 5칸의 공간에 정수를 왼쪽 정렬해 출력하겠다는 의미이다. 실수의 경우에는 소숫점 아래 몇자리 까지 표현할 것인지 %.2f등과 같이 표현할 수 있다.




2. 형식 문자 예시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<stdio.h>
 
int main(void){
    int integer=12;
    long long long_int=-150;
    float fraction=0.0000000000392;
    char character='a';
    char *str="HELLO WORLD!";
 
    printf("\
           Int : %d\n\
           long long : %lld\n\
           OCT : %o\n\
           HEX : %X\n\
           float : %f,%e,%G\n\
           char : %c\n\
           str : %s\n\
           ",integer,long_int,integer,integer,fraction,fraction,fraction,character,str);
 
    return 0;
}
cs


반응형

'프로그래밍 > C & C++' 카테고리의 다른 글

[C] 4. 표현식(Expression)  (0) 2017.02.03
[C] 3. 표준 입출력과 주석  (0) 2017.01.01
[C] cf. ASCII CODE  (0) 2016.12.28
[C] 2. C 언어의 자료형  (0) 2016.12.25
[C] 1. C 언어의 시작  (0) 2016.12.25