Language/C

📌 Chapter 03 - 표준 입출력 함수 - 표준 출력 함수

e-cko 2025. 5. 16. 11:38
반응형
반응형

1. 표준 출력 함수

1) printf() 함수란?

  • 콘솔에 데이터를 출력할 때 사용하는 함수이다.
  • 사용 전 반드시 #include <stdio.h> 헤더 파일을 포함해야 한다.

예제 코드

#include <stdio.h>

int main() {

    printf("Hello C world\n");

    printf("반갑습니다.");

    return 0;

}

📌 출력 결과

Hello C world

반갑습니다.


2) 제어 문자 (Escape 문자)

  • printf() 함수에서만 사용 가능한 특수 문자이다.
  • 출력 형식을 제어하며, 모두 \(역슬래시)로 시작한다.
제어 문자 명칭 설명
\a bell ~ 소리를 낸다
\b backspace 커서를 왼쪽으로 한 칸 이동
\f form feed 프린터에서 한 페이지 이동
\n newline 줄바꿈
\r carriage return 커서를 맨 앞으로 이동
\t tab 수평 탭 (보통 6)
\\ backslash 역슬래시 \ 출력
\' apostrophe 작은따옴표 ' 출력
\" quote 큰따옴표 " 출력

⚠️ 초보자 주의

  • \ 하나만 쓰면 오류가 발생한다. 반드시 올바른 조합(\n, \t )을 사용해야 한다.

 

예제 코드

#include <stdio.h>

int main() {

    printf("1. 소리 출력\a\n");

    printf("2. 백스페이스 사용: ABC\bD\n");

    printf("3. 줄바꿈 사용\n두 번째 줄입니다.\n");

    printf("4. 탭 사용\t여기서부터 띄어짐\n");

    printf("5. 큰따옴표 출력: \"Hello\"\n");

    printf("6. 작은따옴표 출력: \'C\'언어\n");

    printf("7. 역슬래시 출력: C:\\Program Files\\\n");

    return 0;

}


3) 형식 지정자 (Format Specifier)

  • printf()에서 숫자, 문자, 문자열, 주소 등을 특정 형식으로 출력할 때 사용한다.
  • 형식 지정자와 데이터는 반드시 일대일매칭되어야 한다.

✳️ 매칭이 안 맞으면?

  • 쓰레기 값이 출력되거나, 출력되지 않는다.

기본 예제

#include <stdio.h>

int main() {

    printf("정수: %d\n", 10);

    printf("실수: %f\n", 3.14);

    printf("문자: %c\n", 'A');

    printf("문자열: %s\n", "Hello");

    return 0;

}

 

주요 형식 지정자

구분 자료형 지정자 설명
정수 int %d 부호 있는 정수 출력
  unsigned int %u 부호 없는 정수 출력
  long int %ld long형 정수 출력
  unsigned long %lu 부호 없는 long 정수 출력
8진수 unsigned int %o 8진수 출력
16진수 unsigned int %x, %X 16진수 출력 (소문자/대문자)
실수 float, double %f 일반 실수
    %e, %E 지수 형식
    %g, %G 짧거나 긴 표현
문자 char %c 문자 출력
문자열 char* %s 문자열 출력
주소값 포인터 %p 메모리 주소 출력

 

예제 코드

#include <stdio.h>

int main() {

    int i = 42;

    unsigned int ui = 300;

    long int li = 123456789L;

    float f = 3.1415f;

    double d = 2.71828;

    char c = 'Z';

    char str[] = "C Language";

 

    printf("정수: %d\n", i);

    printf("부호 없는 정수: %u\n", ui);

    printf("long형 정수: %ld\n", li);

 

    printf("8진수: %o\n", ui);

    printf("16진수(소문자): %x\n", ui);

    printf("16진수(대문자): %X\n", ui);

 

    printf("실수: %f\n", f);

    printf("지수 표현 (e): %e\n", d);

    printf("지수 표현 (E): %E\n", d);

    printf("짧은 표현: %g\n", d);

    printf("긴 표현: %G\n", d);

 

    printf("문자: %c\n", c);

    printf("문자열: %s\n", str);

    printf("포인터 주소값: %p\n", (void*)str);

    return 0;

}


4) 자릿수 지정 출력

 

4-1) 정수 자릿수 지정

서식 문자열 설명
%d 기본 출력
%5d 5자리 확보, 오른쪽 정렬
%05d 5자리 확보, 0으로 채움
%+5d 부호 포함 출력
%-5d 왼쪽 정렬

 

예제 코드

#include <stdio.h>

int main() {

    int num = 42;

 

    printf("기본 출력: %d\n", num);

    printf("오른쪽 정렬: %5d\n", num);

    printf("0으로 채움: %05d\n", num);

    printf("부호 포함: %+5d\n", num);

    printf("왼쪽 정렬: %-5d<>\n", num);

 

    return 0;

}


4-2) 실수 자릿수 지정

  • 소수점도 전체 자리수포함된다.
  • %(전체 자릿수).(소수점 이하 자릿수)f - 소수점 포함 전체 자릿수 지정
  • %-(전체 자릿수).(소수점 이하 자릿수)f - 왼쪽 정렬 + 소수점 포함 전체 자릿수 지정
서식 문자열 설명
%f 기본 출력 (소수 6자리)
%.2f 소수 둘째 자리까지 출력
%6.1f 6자리 확보, 소수 1자리
%-6.1f 왼쪽 정렬
%7.3f 7자리, 소수 3자리
%010.3f 10자리, 0으로 채움

 

예제 코드

#include <stdio.h>

int main() {

    float f = 3.14159;

 

    printf("기본 출력: %f\n", f);

    printf("소수 둘째 자리: %.2f\n", f);

    printf("6자리 확보: %6.1f\n", f);

    printf("왼쪽 정렬: %-6.1f<>\n", f);

    printf("7자리 확보: %7.3f\n", f);

    printf("0으로 채움: %010.3f\n", f);

    return 0;

}


4-3) 문자열 자릿수 지정

  • C언어는 문자열 자료형이 없기 때문에 char* 형태로 문자열을 사용한다.
  • %(전체 자릿수)s - 전체 자릿수 지정
  • %-(문자열 왼쪽 정렬)(전체 자릿수)s - 정렬 방향과 저네 자릿수 지정

 

서식 문자열 설명
%s 기본 출력
%12s 12자리 확보, 오른쪽 정렬
%-12s 12자리 확보, 왼쪽 정렬

⚠️ 문자열은 항상 char* 또는 배열 형태로 사용한다.
문자형과 혼동하지 않도록 주의해야 한다.

 

예제 코드

#include <stdio.h>

int main() {

    char* str = "Hello";

 

    printf("기본 출력: %s\n", str);             // %s

    printf("오른쪽 정렬: %12s\n", str);         // %12s

    printf("왼쪽 정렬: %-12s<>\n", str);      // %-12s

 

    return 0;

}

 

마무리 정리

1️ printf() 함수는 콘솔 출력용 함수이며, 사용 전에 #include <stdio.h>를 꼭 포함해야 한다.

2️ 제어문자(Escape 문자) \로 시작하며, \n, \t, \\, \", \' 등이 자주 쓰인다.

  • \n: 줄바꿈, \t: , \\: 역슬래시 출력 등

3️ 형식 지정자(Format Specifier)는 출력할 데이터 형식에 따라 %d, %f, %c, %s, %p 등으로 사용한다.

  • 형식 지정자와 매칭되는 값이 없으면 오류 또는 쓰레기 값이 출력된다.

4️ 정수 출력은 %5d, %05d, %-5d, %+5d 등을 이용해 자릿수와 정렬, 채움 방식을 설정할 수 있다.

5️ 실수 출력은 %.2f, %6.1f, %010.3f 등의 형식을 사용하며, 소수점까지 포함해 자릿수를 계산한다.

6️ 문자열 출력은 %s, %12s, %-12s 등을 사용하여 문자열을 정렬 및 자릿수 확보할 수 있다.

7️ 문자열은 반드시 char* 또는 char 배열 형태로 넘기며, %c와 혼동 주의!

반응형