프로그래밍언어/C언어[초급]

[C언어][초급] Chapter09. 서식 지정자 사용법 – 다양한 값 출력의 핵심

about_IT 2025. 4. 15. 09:54

printf 함수는 C언어에서 값을 출력할 때 가장 많이 사용하는 함수입니다.
하지만 printf("%d", something); 이런 식의 기본적인 사용법만 익히고 넘어가면, 다양한 상황에서 원하는 형태로 데이터를 출력하지 못해 곤란할 수 있습니다.

 

예를 들어 실수를 소수점 아래 몇 자리까지 출력하고 싶다거나, 정수와 문자를 함께 출력하려고 할 때, 문자열 사이에 %기호를 넣고 싶을 때 등 출력 형태를 조절할 수 있는 기능이 필요하죠.

 

바로 그때 필요한 것이 **서식 지정자(format specifier)**입니다.


이번 글에서는 C언어의 주요 서식 지정자들과 활용법을 차근차근 정리해보겠습니다.


● 서식 지정자란?

서식 지정자는 printf, scanf 등의 함수에서 데이터의 자료형과 출력 형식을 지정해주는 역할을 합니다.
% 기호로 시작하며, 뒤에 붙는 문자로 어떤 데이터인지를 구분합니다.

예를 들어 %d는 정수를 의미하고, %f는 실수를 의미하죠.
printf는 이 서식 지정자들을 통해 여러 개의 값을 한꺼번에 출력할 수도 있고, 출력 형식을 세밀하게 조정할 수도 있습니다.


● 주요 서식 지정자 정리

 

서식 지정자 대상  자료형 예시 코드 출력 결과 설명
%d int (정수) printf("%d", 10); 10 정수를 10진수로 출력
%f float, double printf("%f", 3.14); 3.140000 실수를 소수점 아래 6자리까지 출력
%.nf float, double printf("%.2f", 3.14159); 3.14 소수점 아래 n자리까지 출력
%c char (문자 1개) printf("%c", 'A'); A 문자 출력
%s 문자열 printf("%s", "Hello"); Hello 문자열 출력
%% 없음 (기호용) printf("진행률: 80%%"); 진행률: 80% `% 기호 자체를 출력하고 싶을 때 사용

● 서식 지정자 실제 예제

1. 정수 출력

int score = 95;
printf("시험 점수: %d점\n", score);  // 출력: 시험 점수: 95점

 

 

2. 실수 출력 (자릿수 지정)

float pi = 3.141592;
printf("원주율: %.2f\n", pi);  // 출력: 원주율: 3.14

 

 

3. 문자 출력

char grade = 'A';
printf("등급: %c학점\n", grade);  // 출력: 등급: A학점

 

 

4. 문자열 출력

char name[] = "홍길동";
printf("이름: %s\n", name);  // 출력: 이름: 홍길동

 

 

5. 퍼센트 기호 출력

printf("달성률: 100%%\n");  // 출력: 달성률: 100%

 


● 서식 지정 시 자주 발생하는 실수

  • 변수 자료형과 서식 지정자가 다르면 오류가 발생하거나 엉뚱한 값이 출력됩니다.
float weight = 60.5;
printf("%d", weight);  // 잘못된 예: %d는 정수용인데 실수를 입력함
  • 문자 출력 시 %c, 문자열 출력 시 %s를 혼동하지 않도록 주의합니다.
  • 실수 출력 시 정밀도를 지정하지 않으면 기본 6자리까지 출력됩니다. 필요에 따라 %.1f, %.3f 등으로 조정해야 깔끔합니다.

● 출력 서식과 가독성

printf 함수는 단순히 데이터를 출력하는 것을 넘어서, 화면 출력의 가독성까지 고려하게 합니다.
출력 결과가 깔끔할수록 프로그램의 품질도 올라가죠.

int x = 5, y = 7;
printf("x + y = %d\n", x + y);  // 보기 좋은 출력

 

이처럼 printf와 서식 지정자를 자유롭게 조합할 수 있으면, 디버깅이든 사용자 인터페이스든 보다 직관적인 출력 화면을 만들 수 있습니다.

 


실습 문제

아래 문제는 직접 코드를 작성해보고, 실행 결과를 확인한 후 스스로 정답을 유추해보는 형태입니다.

정답은 바로 아래에서 확인할 수 있습니다.


문제 1

정수형 변수 a와 b를 선언하고 각각 7과 3을 저장한 뒤, 다음과 같이 출력되도록 코드를 완성하세요.

a = 7, b = 3

문제 2

실수형 변수 pi에 3.14159를 저장하고, 소수점 아래 둘째 자리까지만 출력하세요.

문제 3

문자형 변수 grade에 'B'를 저장하고, 다음 문장을 출력해보세요.

당신의 등급은 B입니다.

문제 4

printf를 이용하여 문자열 "Hello, C!"를 출력해보세요.

문제 5

정수형 변수 score가 85일 때, printf를 이용하여 "당신의 점수는 85점입니다."라는 문장을 출력해보세요.

문제 6

정수 15와 4의 나눗셈 결과를 소수로 출력해보세요.
출력 예시:

15 / 4 = 3.75

문제 7

문자 %를 출력하기 위해 printf에 어떤 서식을 써야 하는지 확인하고 출력 코드를 작성해보세요.
예시 출력:

성공률: 100%

문제 8

다음 코드의 실행 결과를 예상해보세요.

int x = 12;
printf("%f\n", x);

문제 9

문자열 "홍길동"을 출력하고 줄을 바꾸는 코드를 작성하세요.

문제 10

아래 코드의 빈칸을 채워, 정수와 실수를 함께 출력해보세요.

int age = 23;
float height = 175.3;
printf("나이: ???, 키: ???\n");








▶ 정답 확인하기

정답 1

int a = 7, b = 3;
printf("a = %d, b = %d\n", a, b);

 

정답 2

float pi = 3.14159;
printf("원주율: %.2f\n", pi);

 

정답 3

char grade = 'B';
printf("당신의 등급은 %c입니다.\n", grade);

 

정답 4

printf("Hello, C!\n");

 

정답 5

int score = 85;
printf("당신의 점수는 %d점입니다.\n", score);

 

정답 6

int a = 15, b = 4;
printf("15 / 4 = %.2f\n", (float)a / b);

 

정답 7

printf("성공률: 100%%\n");

 

정답 8

(경고 또는 이상 출력)
→ int형 값을 %f로 출력했기 때문에 잘못된 결과가 출력됨.

 

정답 9

printf("홍길동\n");

 

답 10

printf("나이: %d, 키: %.1f\n", age, height);