‘printf()’ 함수 출력 옵션

1. printf Prototype
    int printf(const char *format,)

2. Format
   Syntax: %[flags][width][.precision][length]type

   * flags
     ‘+’ / ‘-‘ : 오른쪽 정렬 / 왼쪽 정렬(생략시 오른쪽 정렬이 기본값)
     ‘#’ : (type이 f, F, e, E, g, G 일 때) 0을 지우지 않음, (type이 x, X, o 일 때) 0, 0x, 0X을 붙여줌
     ‘0’ : 빈 칸을 0으로 채움

   * width
     ‘숫자’ : 최소한의 숫자 문자 너비, 0으로 시작할 경우 빈 칸을 0으로 채움
     ‘*’ : n 길이의 숫자 문자 너비

   * precision
     ‘숫자’ : (int형이 아닐 때) 소숫점 길이, (string형 일 때) 표시할 문자 길이
     ‘*’ : n 길이의 소숫점 또는 문자

   * length
     ‘hh’ : (int 형에서) char형 으로 부터 승격된 int 크기 integer
     ‘h’ : (int 형에서) short형 으로 부터 승격된 int 크기 integer
     ‘l’ : (int 형에서) long 크기 integer
     ‘ll’ : (int 형에서) long long 크기 integer
     ‘L’ : (float 형에서) long double 크기
     ‘z’ : (int 형에서) size_t 크기 integer
     ‘j’ : (int 형에서) intmax_t 크기 integer
     ‘t’ : (int 형에서) ptrdiff_t 크기 integer

사용자 삽입 이미지    p.s. 위 결과는 Visual Studio 2005, 2008, 2010에서 나온 결과입니다.

   * type
     ‘d’ or ‘i’ : int 형을 부호가 있는 10진수로 출력
     ‘u’ : int : int 형을 부호가 없는 10진수로 출력
     ‘f’ or ‘F’ : double 형을 fixed-point 소수로 출력, 차이점은 무한대 값이나 NaN을 출력할 때 대소문자
     ‘e’ or ‘E’ : double 형을 지수 형식([-]d.ddd e[+/-]ddd)으로 소수 출력, ‘E’는 최소 2자리 숫자를 가짐
     ‘g’ or ‘G’ : 출력 할 값에 따라서 fixed-point 출력 또는 지수 형식으로 출력
     ‘x’ or ‘X’ : unsigned int 형을 16진수로 출력,(‘x’의 경우 소문자로/’X’의 경우 대문자로)
     ‘o’ : unsigned int 형을 8진수로 출력
     ‘s’ : char 문자열 출력
     ‘c’ : char 출력
     ‘p’ : void * 값을 16진수로 출력
     ‘n’ : 출력하지 않음,(argument는 반드시 singned int pointer이어야 함.), 성공적으로 쓰여진 문자의 수를 기록
            %n을 악용할 수 있기 때문에 Visual Studio 2005 이후에서는 사용 안함으로 되어 있음.


사용자 삽입 이미지
[code]#include <stdio.h>

void main(void)
{
 int ptr;
 int a = 123;
 long long int b = 0x0123456789abcdef;
 printf(“+———-+———-+———-+———-+———-+\n”);
 printf(“|%10s|%-10s|%010s|%10s|%10s|\n”,”%10d”,”%-10d”,”%010d”,”%10x”,”%#10x”);
 printf(“|%10d|%-10d|%010d|%10x|%#10x|\n”,a,a,a,a,a);
 printf(“+———-+———-+———-+———-+———-+\n”);
 printf(“|%10s|%10s|%10s|%10s|%10s|\n”,”%10d”,”%10u”,”%10o”,”%010o”,”%#10p”);
 printf(“|%10d|%10u|%10o|%010o|%#10p|\n”,-123,-123U,a,a,&ptr);
 printf(“+———-+———-+———-+———-+———-+\n”);  
 printf(“|%10s|%10s|%10s|%10s|\n”,”%10f”,”%10.3f”,”%10.3e”,”%10.3g”);
 printf(“|%10f|%10.3f|%10.3e|%10.3g|\n”,12.345,12.345,12.345,12.345);
 printf(“+———-+———-+———-+———-+\n\n”);
 printf(” Value: %#16llx\n”,b);
 printf(“+—————-+—————-+—————-+\n”);
 printf(“|%16s|%16s|%16s|\n”,”%16hhx”,”%16hx”,”%16x”);
 printf(“|%16hhx”,b);
 printf(“|%16hx”,b);
 printf(“|%16x|\n”,b);
 printf(“+—————-+—————-+—————-+\n”);
 printf(“|%16s|%16s|\n”,”%16lx”,”%16llx”);
 printf(“|%16lx”,b);
 printf(“|%16llx|\n”,b);
 printf(“+—————-+—————-+\n”);
}[/code]* 참고 URL
http://en.wikipedia.org/wiki/Printf
http://www.cplusplus.com/reference/clibrary/cstdio/printf/
http://www.tipssoft.com/bulletin/board.php?bo_table=FAQ&wr_id=708

You may also like...

댓글 남기기