코딩

챕터 1-6 : 서식지정자

story98138 2026. 2. 23. 20:42

 수업 목표

  • 서식 지정자에 대해 배워본다.
  • 진법에 대해 배워본다.

 

서식 지정자(Format Specifier)

printf() 함수 혹은 scanf() 함수와 같은 입출력 함수들과 함께 쓰여서 양식에 맞게 입출력 할 수 있게끔 도와주는 지정자. 문자열의 원하는 위치에 서식 지정자를 넣어서 사용합니다.

 

서식 지정자의 종류

1️⃣%d: decimal의 약자. 10진수로 대체됩니다.

 

2️⃣%o: octal의 약자. 8진수로 대체됩니다. ex) 9(10) <-> 11(8)

 

3️⃣%x: hexadecimal의 약자. x는 소문자, X는 대문자로 대체됩니다. ex) 17(10) <-> 11(16)

 

4️⃣%u: unsigned의 약자. 양수로 대체됩니다.

 

5️⃣%c: character의 약자. 문자로 대체됩니다.

 

6️⃣%s: string의 약자. 문자열로 대체됩니다.

 

7️⃣%f: floating point의 약자. single precision.

 

8️⃣%lf: double precision floating point.

 

 

서식 지정자는 왜 필요할까요?

3245라는 숫자를 문자열에 편입시키기 위해서 printf(“Result: %d”, 3245)라고 적을 수 있습니다. 또한 서식 지정자를 활용하면 계산 결과도 얻어 낼 수 있습니다. 3245 * 2342의 계산 결과를 화면에 출력시키기 위해 printf(”Result: %d”, 3245 * 2342)라고도 적을 수 있습니다. 즉, 복잡한 수식을 빠른 시간안에 계산하고 그 결과를 원하는 형식으로 보기 위함입니다. 복잡한 소스코드를 작성할 때 디버깅 용도로 요긴하게 사용되기도 합니다.

 

 

Ex010601) 서식시정자

#include <stdio.h>

int main(void)
{
    printf("%d", 3245 * 2342);
    printf("%f", 3245 * 2342);

    return 0;
}

 

printf() 함수 코드를 정확하고 쉽게 이해하는 방법

뒤에서부터 해석하면 훨씬 쉬워집니다. 결국 영어로 작성하기에, 어순이 우리나라와 다릅니다. printf(”%d”, 3245 * 2342); 라는 코드는 “3245 * 2342를 %d 형식으로 printf해라”라고 해석합니다. 후에 배울 scanf()도 동일하게 뒤에서부터 해석하는게 편합니다.

 

 

Ex010602) 정수 서식지정자

#include <stdio.h>

int main(void)
{
    printf("[%d]\n", 65536);
    printf("[%2d]\n", 65536);
    printf("[%5d]\n", 65536);
    printf("[%7d]\n", 65536);
    printf("[%-7d]\n", 65536);
    printf("[%07d]\n", 65536);
    printf("[%+7d]\n", 65536);

    return 0;
}

 

 

 

Ex010603) 실수 서식지정자

#include <stdio.h>

int main(void)
{
    printf("[%f]\n", 3.141592);
    printf("[%.2f]\n", 3.141592);
    printf("[%.10f]\n", 3.141592);
    printf("[%5.2f]\n", 3.141592);
    printf("[%5.10f]\n", 3.141592);
    printf("[%+20.10f]\n", 3.141592);
    printf("[%-20.10f]\n", 3.141592);

    return 0;
}