printf 함수

printf 함수

이 함수를 먼저 이해하고 잘 배워야 하는 이유는 무엇일까요? 앞으로 C언어 공부를 할 때 이 함수를 매우 자주 사용하기 때문입니다. 이 함수는 콘솔에 내용을 출력하는 용도로 쓰입니다.

1 printf 함수

앞서 보았던 예시 코드에서도 이 함수를 사용했습니다.

// printf 호출로 문자열 출력, \n은 줄바꿈 의미
printf("hello, world\n");
Code language: Arduino (arduino)

printf() 표준 출력 라이브러리 함수

printf("내용") 형식으로 문자열 매개변수를 전달하며, 큰따옴표 안의 문자를 콘솔에 출력합니다.

문장 끝에는 반드시 세미콜론 ;을 적어 한 문장의 끝임을 표시해야 합니다. 세미콜론을 빼먹으면 컴파일 오류가 발생합니다. 아래 오류 메시지 예시를 참고하세요.

C:\cdemo>gcc hello.c -o hello.exe
hello.c: In function 'main':
hello.c:5:29: error: expected ';' before 'return'
     printf("hello, world\n")
                             ^
                             ;
     return 0;
     ~~~~~~Code language: PHP (php)

여러 줄 텍스트를 출력하고 싶다면 아래처럼 작성할 수 있습니다.

#include <stdio.h>
main()
{
    printf("첫 번째 줄 텍스트\n");
    printf("두 번째 줄 텍스트\n");
}Code language: PHP (php)

2 문자열

영문 큰따옴표 " "로 감싼 일련의 문자를 문자열이라고 부릅니다. 예: "hello, world\n"

앞 예시에서 문자열을 printf의 매개변수로 넘겨 콘솔에 그대로 출력했습니다.

문자열을 중간에 줄바꿈으로 분리해서 작성할 수 없으며, 아래 코드는 바로 컴파일 오류를 발생시킵니다.

// 잘못된 예시: 문자열을 두 줄로 분할
printf("hello, world
");
Code language: Arduino (arduino)

컴파일 오류 출력 결과

C:\cdemo>gcc hello.c -o hello.exe
hello.c: In function 'main':
hello.c:6:11: warning: missing terminating " character
    printf("hello, world
           ^
hello.c:6:11: error: missing terminating " character
    printf("hello, world
           ^~~~~~~~~~~~~
hello.c:7:4: warning: missing terminating " character
    ");
    ^
hello.c:7:4: error: missing terminating " character
    ");
    ^~~
hello.c:8:5: error: expected expression before 'return'
     return 0;
     ^~~~~~
hello.c:8:14: error: expected ';' before '}' token
     return 0;
              ^
              ;
 }Code language: PHP (php)

3 이스케이프 문자 \n 줄바꿈 기호

\n는 C언어 전용 기호로, 줄바꿈 문자를 의미합니다.

printf는 자동으로 줄바꿈하지 않으므로 수동으로 \n을 추가해야 커서가 다음 줄로 이동합니다.

\n을 적지 않으면 모든 내용이 한 줄에 표시됩니다. 아래 예시를 확인하세요.

#include <stdio.h>

int main()
{
    // \n 없음: 두 텍스트가 한 줄에 붙어서 출력
    printf("hello");
    printf("world");

    // \n 포함: 출력 후 자동 줄바꿈
    printf("\nhello\n");
    printf("world\n");

    return 0;
}Code language: PHP (php)
C:\cdemo>gcc hello.c -o hello.exe

C:\cdemo>hello
helloworld
hello
world

C:\cdemo>Code language: CSS (css)

hello와 world가 한 줄에 붙어서 출력된 것을 볼 수 있습니다. printf로 내용 출력 후 줄바꿈하려면 반드시 \n을 붙이세요. \n 한 개는 엔터 키를 한 번 누른 것과 동일하며, \n을 두 번 연속 쓰면 줄바꿈이 두 번 실행되어 문자열 사이에 빈 줄 한 줄이 생깁니다. 메모장에서 엔터를 두 번 누르는 동작과 같습니다.

#include <stdio.h>

int main()
{
    printf("one\n\n");
    printf("two");
    return 0;
}Code language: PHP (php)

실행 결과

C:\cdemo>gcc hello.c -o hello.exe

C:\cdemo>hello
one

two
C:\cdemo>Code language: CSS (css)

여러 번 printf를 나눠 호출해 한 줄로 이어서 출력할 수도 있습니다.

예시를 보겠습니다.

#include <stdio.h>

int main()
{
    printf("hello, ");
    printf("world");
    printf("\n"); // 마지막에 한 번에 줄바꿈
}Code language: PHP (php)

자주 하는 실수 보충

#include <stdio.h>

위 전처리 헤더 불러오기 구문 끝에는 세미콜론; 을 붙이지 않습니다.

printf 함수를 사용하려면 #include <stdio.h>로 헤더 파일을 불러와야 하며, 누락 시 오류가 발생합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다