Programming/C,C++

[C] format 형식 지정시 숫자 앞에 0 붙이기

HwansChoi 2016. 5. 3. 22:59


보통 format을 사용해서 숫자를 문자화 할때가 있다.

자주 사용하지 않아서 사용 할 때 마다 가끔 까먹는다. -_- 그래서 정리~


예를 들어 수자형 날짜를 문자로 표시할 때

int nYear = 2016;

int nMonth = 5;

int nDay = 3;


format("%d%d%d, nYear, nMonth, nDay);

위와 같이 format을 하면 결과 값이 "201653" 이 나온다.


하지만 난 Month와 Day를 두자릿수로 만들고 싶다.


이럴경우 %2d를 사용하여 format 을 하면

int nYear = 2016;

int nMonth = 5;

int nDay = 3;

format("%d%2d%2d, nYear, nMonth, nDay);

결과 값 : "2016_5_3" 5와 3앞에는 공백

위와 같이 공백으로 표시되어 나온다.


난 공백이 아닌 0을 숫자 앞에 넣고 싶다.

이럴 경우에는 %02d를 사용하면 된다.

int nYear = 2016;

int nMonth = 5;

int nDay = 3;

format("%d%02d%02d, nYear, nMonth, nDay);

결과값 : "20160503"

만약 nMonth나 nDay가 두자릿수면 알아서 두자릿수를 표시해 주고 한자릿수 이면 앞에 0을 붙여준다.