printf() 함수에서 주어진 값을 여러가지 형식으로 포맷하는 방법을 알아보자.
1. 타입 (type) 의 지정
타입 지정자 d 는 주어진 값을 부호가 있는 십진 정수 타입으로 포맷한다.
printf(“%d<br>”, 255); // 255 를 출력한다.
printf(“%d<br>”, -255); // -255 를 출력한다.
타입 지정자 u 는 주어진 값을 부호가 없는 십진 정수 타입으로 포맷한다.
printf(“%u<br>”, 255); // 255 를 출력한다.
printf(“%u<br>”, -255); // 18446744073709551361 을 출력한다.
타입 지정자 f 는 주어진 값을 실수 타입으로 포맷한다.
printf(“%f<br>”, 3.14); // 3.140000 을 출력한다.
타입 지정자 e 는 주어진 값을 과학 표기법에 따라 포맷한다.
printf(“%e<br>”, 1234567890); // 1.234568e+9 를 출력한다.
타입 지정자 s 는 주어진 값을 문자열로 포맷한다.
printf(“%s<br>”, “xtmci.com”); // xtmci.com 을 출력한다.
타입 지정자 c 는 주어진 값을 해당 값에 대응하는 아스키 (ASCII) 문자로 포맷한다.
printf(“%c<br>”, 65); // A 를 출력한다.
printf(“%c<br>”, 90); // Z 를 출력한다.
타입 지정자 b 는 주어진 값을 이진수 정수 타입으로 포맷한다.
printf(“%b<br>”, 255); // 11111111 을 출력한다.
타입 지정자 o 는 주어진 값을 8진수 정수 타입으로 포맷한다.
printf(“%o<br>”, 255); // 377 을 출력한다.
타입 지정자 x 는 주어진 값을 16진수 정수 타입으로 포맷한다. 소문자가 사용된다.
printf(“%x<br>”, 255); // ff 를 출력한다.
타입 지정자 X 는 주어진 값을 16진수 정수 타입으로 포맷한다. 대문자가 사용된다.
printf(“%X<br>”, 255); // FF 를 출력한다.
2. 자리수 채우기
자리수를 채우는 문자를 패딩 (padding) 문자라고 부른다.
패딩 문자 0 을 사용하여 자리수를 채워 보자.
printf(“%06d<br>”, 123); // 000123 을 출력한다.
printf(“%06d<br>”, 1234567); // 1234567 을 출력한다.
주어진 값의 자리수가 지정한 자리수보다 클 때는 주어진 값의 자리수 만큼 표시된다. 지정한 자리수는 무시된다.
패딩 문자를 지정하지 않으면 공백 문자가 사용된다.
printf(“%6d<br>”, 123); // ‘ 123’ 을 출력한다.
printf(“% 6d<br>”, 123); // ‘ 123’ 을 출력한다.
음수를 지정하면 오른쪽이 채워진다.
printf(“%-6d<br>”, 123); // ‘123 ‘ 을 출력한다.
0 이나 공백 문자가 아닌 패딩 문자는 홑따옴표 (‘) 와 함께 지정한다. 애스터리스크 (*) 문자를 지정해 보자.
printf(“%’*6d<br>”, 123); // ***123 을 출력한다.
3. 수의 정밀도 지정
수의 정밀도는 달리 지정하지 않으면 소수점 이하 6 자리로 표현된다.
printf(“%f<br>”, 3.141592654); // 3.141593 을 출력한다.
점 (.) 과 자리수를 의미하는 숫자를 타입 지정자 앞에 추가하여 정밀도를 변경한다.
printf(“%.8f<br>”, 3.141592654); // 3.14159265 를 출력한다.
printf(“%.10f<br>”, 3.141592654); // 3.1415926540 을 출력한다.
4. 양의 부호 표시하기
주어진 값이 양수일 때 양의 부호를 표시하려면 타입 지정자 앞에 플러스 (+) 기호를 추가한다.
printf(“%d<br>”, 255); // 255 를 출력한다.
printf(“%+d<br>”, 255); // +255 를 출력한다.