다양한 형식의 printf문 정렬 방법
프로그래밍 2012. 9. 2. 11:13 |1. 좌,우 정렬
출력되는 자료를 어느 방향으로 정렬할 것인지를 결정해 줍니다.
(-)부호를 앞에 붙이면 왼쪽 정렬이 됩니다.
평소에는 쓸 일이 없겠지만.. 아래 형식에 따라 이쁘게 줄을 맞출때 유용합니다.
2. 다양한 출력 형식
%c : char(문자)형의 한 문자로 출력(그냥 '%c'로만 사용하시기 바랍니다.)
%d : 부호 있는 정수로 출력
%o : 부호 없는 8진수 정수로 출력
%x : 부호 없는 16진수 정수로 소문자 출력
%X : 부호 없는 16진수 정수로 대문자 출력
%u : 부호 없는 정수로 출력
%f : float나 double형의 실수로 출력
%e : 과학 기술 계산용(예 : 1e5 = 100000)으로 e를 소문자로 출력
%E : %e와 비슷하나 E를 대문자로 출력
%g : %f나 %e중 짧은 것으로 선택
%G : %f나 %E중 짧은 것으로 선택
%s : 문자열 출력('\0'을 만날 때 까지 계속 출력합니다.)
%p : 포인터의 주소를 hex값으로 출력
%% : '%'를 그대로 출력(그냥 '%%'로 사용하시기 바랍니다.)
3. 출력할 최대 자릿수 지정
자리가 모자라면 그냥 무시하고 계속 출력하고
자리가 남으면 나머지를 공백(정수,문자열) 혹은 0(소수점 유효숫자 이하)으로 채웁니다.
※ 주의 : 실수의 경우에는 소수점까지 포함한 전체 자릿수를 말합니다.
예) 123을 %5d로 출력하면 -> __123 ( _는 공백)
123.456를 %10f로 출력하면 -> 123.456000
"ASDF"를 %10s로 출력하면 -> ______ASDF
4. 최대 출력 폭(길이)과 문자 수를 구분(문자열)
.(점) 을 이용해서 구분해 줄 수 있습니다.
소수점 이하 자릿수를 구분(실수)해 줍니다.
예) 123.456789 를 %10.3f로 출력하면 -> ___123.457 (반올림 됨)
5. 소수점 이하 자릿수(실수)나 출력할 문자 수(문자열)
.(점) 이후에 숫자로 지정해줍니다.
출력할 0의 갯수(정수)를 지정할 때도 사용됩니다.
실수 출력인 경우에는 출력할 자릿수만 소수 이하로 출력되며
문자열의 경우에는 맨 앞부터 출력할 문자수만큼 출력합니다.
예) "ASDF"를 %.2s로 출력하면 -> ___AS
1.23456789 을 %.3f로 출력하면 -> 1.235 (반올림 됨)
123을 %.12d로 출력하면 -> 000000000123
6. long형으로 출력
실수, 정수형에서만 사용이 가능한 옵션입니다.
(long형은 double, long double, long, unsigned long을 말합니다.)
1. "ASDF"라는 문자열
%s : ASDF
%10s : ______ASDF
%-10s : ASDF______
%10.3s : _______ASD
%-10.3s : ASD_______
2. 123.456789 라는 실수
%f : 123.456789
%.3f : 123.457 (반올림 됨)
%10.3f : ___123.457
%-10.3f : 123.457___
%10.3E : _1.235E+02
%-10.3E : 1.235E+02_
3. 123 라는 정수
%d : 123
%5d : __123
%05d : 00123
%.5d : 00123 (%05d와 같은 의미)
%-5d : 123__
%x : 7b
%5x : ___7b
%-5x : 7b___
%05x : 0007b
%-5X : 7B___
%o : 173
%07o : 0000173
%-7o : 173____
%7o : ____173
'프로그래밍' 카테고리의 다른 글
Visual Studio Formatter (0) | 2012.11.15 |
---|---|
Visual Studio Parallel Build 향상 (0) | 2012.11.15 |
이클립스 에러 Conversion to Dalvik format failed: Unable to execute dex: null, unable to execute dex java heap space (0) | 2011.11.11 |
Makefile 에러 정리 (0) | 2011.10.26 |
cross platform static library merge (0) | 2011.08.23 |