format
다양한 자료형 변수를 문자열로 변환하는 방식을 지정해주는 형식 문자열(format string)인 문자열 변수를 받아들인다.
형식 지정자 | 설명 |
d,i | 부호 있는 10진 정수 |
u | 부호 없는 10진 정수 |
o | 부호 없는 8진 정수 |
x | 부호 없는 16진 정수(소문자) |
X | 부호 없는 16진 정수(대문자) |
f | 실수를 소수점으로 표기(소문자) |
F | 실수를 소수점으로 표기(대문자) |
e | 실수 지수 표기법 사용(소문자) |
E | 실수 지수 표기법 사용(대문자) |
g | %f와 %e 중에서 짧은 것을 사용(소문자) |
G | %F와 %E 중에서 짧은 것을 사용(대문자) |
a | 실수를 16진법으로 표기(소문자) |
A | 실수를 16진법으로 표기(대문자) |
c | 문자 |
s | 문자열 |
p | 포인터의 메모리 주소 |
n | %n 부분에 int 포인터를 넣으면 지금 까지 출력한 문자 개수를 변수에 넣어줌 |
% | % 기호 출력 |
flag
출력되는 형태에 대해 좀 더 세밀하게 지정할 수 있게 해준다.
flag | 설명 |
- | 왼쪽 정렬 |
+ | 양수일 때는 + 부호, 음수일 때는 - 부호 출력 |
space(공백) | 양수일 때는 부호를 출력하지 않고 공백으로 표시, 음수 일 때는 - 부호 출력 |
# | 진법에 맞게 숫자 앞에 0, 0x, 0X를 붙임 |
숫자(width) | 지정한 숫자만큼 폭을 지정하여 출력, 실수는 . (점), e+까지 폭에 포함됨 |
.숫자(precision) | 지정한 숫자만큼 소수점 아래 자리 출력 |
0 | 출력하는 폭의 남는 공간에 0으로 채움 |
width (폭)
- 출력할 값의 최소 너비를 정한다.
- 출력할 값이 지정한 폭보다 작으면 자릿수를 맞추기 위해 0을 채워넣는다.
- 출력할 값이 지정한 폭보다 크면, 값이 잘리면 안되기 때문에 width 옵션은 무시된다.
- width에 음수가 할당되면 `-`플래그 + `width`로 간주한다.
폭을 지정하는 방법
1. [숫자] : % 뒤에 나오는 10진수 숫자가 곧 지정한 폭이 된다.
2. [*] : 숫자 와일드카드. 가변인자로 폭을 지정한다.
주의할점은, 필드의 폭을 지정할 때 1번처럼 변환 문자 앞에 숫자로 적던지, * 와일드 카드를 인수로 받던지 둘 중 하나만 가능
precision (정밀도)
-
출력할 값의 정확도를 위한 자릿수를 설정한다. 즉, 몇 자리까지 출력해야 된는지.
-
꼭 앞에 마침표(.) 를 찍어야 한다. 폭과 구분하기 위해서.
-
형식 문자열에서 정밀도를 나타내지는 않지만 뒤에 인자로 정밀도 값을 준다. 이 때 인자는 형식 태그가 적용되는 데이타 앞에 있어야 한다.
-
출력할 값이 정수(d, i)일 때
최대 자릿수를 맞추기 위해 0을 추가한다. 자릿수가 출력할 값보다 작을 경우에는 정밀도 옵션을 무시한다.
-
출력할 값이 실수일 때
소수점 이하의 최대 자릿수를 가리키고, 자릿수에 따라 반올림이 되거나 소수점 이하에 0이 추가된다. 실수 전체의 자릿수 설정은 width옵션을 사용한다.
-
정밀도에 음수가 할당되면 무시한다.
-
정밀도가 정밀도이면서 동시에 서식지정자인 경우 ... X
참 조 :
https://velog.io/@hidaehyunlee/%ED%98%95%EC%8B%9D%ED%83%9C%EA%B7%B8%EC%99%80-%EC%84%9C%EC%8B%9D%EC%A7%80%EC%A0%95%EC%9E%90-printf-%ED%95%A8%EC%88%98%EC%9D%98-%EC%98%B5%EC%85%98-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0