본문 바로가기
Language/C

[C] printf 서식문자

by 어발 2022. 9. 16.

이번 포스팅은 Type별 printf의 서식문자가 아니고 출력할 크기 및 옵션을 지정하는 서식문자에 대한 포스팅이다.

크기 및 옵션

Format: %[flags][width][.percision]specifier

[flags]와 [width]옵션

  • width 옵션
      설명
    숫자 숫자 만큼의 자리수로 출력
    * * 에 들어가는 변수값의 자리수로 출력
  • flag 옵션
      설명
    - 왼쪽 정렬로 출력 (Defalut: 오른쪽 정렬)
    # 8진법, 16진법 표기에 맞추어 0 혹은 0x를 출력
    + 양수에는 +, 음수에는 - 기호를 붙여서 출력
    (빈칸) 양수일때는 빈칸, 음수일때는 - 기호를 붙여서 출력
    0 남는 공간을 0으로 채워서 출력
/* flags 및 width 옵션 예제 */
printf("%5d", 3);   // output: "    3"
                    // 총 출력칸이 5칸으로 설정되고 Defalut가 오른쪽 정렬
printf("%*d", 5, 3); // output: "    3"
                     // 총 출력칸이 5칸으로 설정되고 오른족정렬하여 출력
printf("%-5d", 3);  // output: "3    "
                    // 총 출력칸이 5칸으로 설정되고 - flag로 인해서 왼쪽 정렬
printf("%#x", 10);  // output: 0xa
                    // 16진수 출력인 x로 했고 #으로 인해서 16 진수 표기법인 0x가 삽입
printf("%05d", 3);  // output: 00003
                    // 5칸으로 설정되고 숫자가 출력되지 않는 남는 공간은 0으로 채워짐.

[.precision] 옵션

  설명
.숫자 숫자 만큼의 정확도로 실수 출력
.* .* 에 들어가는 변수값의 정확도로 실수 출력
/* .precision 옵션 예제 */
printf("%.3f", 1.2334556); // output: 1.233
                           // 정확도가 3자리로 표현되었기에 소숫점 3자리까지 출력
printf("%.2d", 4);         // output: 04
                           // 정확도가 표시되어야 하기에 2자리로 04로 출력
printf("%.*d", 2, 4);      // output: 04
                           // %.2d 와 같은 표시
728x90

댓글