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>로 헤더 파일을 불러와야 하며, 누락 시 오류가 발생합니다.