Printf 의 type 정리

IT/C/C++ 2008. 10. 26. 13:24

굳이 이걸 스크랩 한 이유는 printf("%g", ret ) 을 쓰면서 (double ret ) %g 포맷에 대해 리뷰할 필요를 느꼈기 때문이다. 아래 표에는 안나와있지만 printf("%g",ret ) 으로 쓰면 ret = 1.0 일 경우에는 1 을 찍고, 1.25 일 경우는 1.25 만 찍는 등.... 소수점 아래 0 은 제거하고, 정수만 있을때는 %d 처럼 동작한다. %f 의 경우 나누어 떨어지는 뒷자리의 0 은 0 으로 모두 채운다. 1.0 을 1.0000000000 이라고 찍는 것이다.


type (형)

인수의 형을 지정

d int값을 부호있는 10진수로 출력
i d와 같음
u int값을 부호없는 10진수로 출력
X int값을 부호없는 16진수로 출력  10~15은  'A'~'F'로 표시
x int값을 부호없는 16진수로 출력  10~15은  'a'~'f'로 표시
o int값을 부호없는 8진수로 출력
p 포인터값을 16진수로 출력
s 문자열 출력
c int값을 문자로 출력
C c와 같음
f double값을 소수로 출력 (예:12.566371)
e double값을 지수로 출력 (예:1.256637e+001)
E e와 같음 'e'가 'E'로 표시 (예:1.256637E+001)。
g 숫자값의 크기에 따라 f나 e로 출력  (예:12.5664、2.99792e+008)
숫자값의 절대치가 너무 커서 precision의 자리수를 넘는 경우와 숫자값의 절대값이 0.0001보다 작은 경우 e형식이 사용되어짐. 그 외의 경우는 f형식으로 사용됨
G 9와 같음 'e'가 'E'로 표시

AND