2026. 2. 24. 15:33ㆍTIL
챕터 1-5 : main() 함수와 printf() 함수
수업 목표
- main() 함수와 printf() 함수에 대해 배워본다.
- 탈출 문자열에 대해 배워본다.
프로그램의 시작점(Entry Point)
main() 함수는 프로그램의 시작점입니다. 즉, 모든 프로그램에게는 main() 함수가 있어야 합니다.
Ex010501) main() 함수 [중요 샘플 코드]
앞으로 Ex010501 같이 예제가 나오면 새 프로젝트를 만들어서 실습하면 됩니다.
// Main.c
int main(void)
{
return 0;
}

실행 결과 화면. 콘솔(Console) 화면이라고도 부릅니다. 밑에 글은 무시해도 됩니다.
두 가지 좋은 습관
1️⃣코드 작성에서 가장 중요한 것은 “시작이 있으면 무조건 끝을 맺어줘야 한다.”입니다. 만약 열었다면 무조건 닫는 문법이 있고, 소유 했다면 다시 돌려주는 문법이 있습니다. 다시 말하지만, 컴퓨터는 사람이 아닙니다. 유추라는 능력이 없습니다. 당연히 컴퓨터는 어디가 시작이고 어디가 끝인지 알 수 없습니다.
2️⃣들여 쓰기를 생활화 합시다. 들여 쓰기를 처음부터 안하면 끝까지 안하는게 습관처럼 됩니다. 악필이 습관 되는 것입니다.
콘솔 화면에 글자를 출력해보고 싶다면?
지금까지는 아무런 내용이 없는 빈 백지부터, 프로그램의 시작점인 main() 함수까지 작성해보았습니다. 이번에는 콘솔 화면에 글자를 띄워보고 싶다면 어떻게 해야할까요?
Ex010502) printf() 함수 [중요 샘플 코드]
// Main.c
#include <stdio.h>
int main(void)
{
printf("Hello, world!");
return 0;
}

콘솔 화면.
예제코드 설명
// Main.c
#include <stdio.h> // stdio는 공구통 이름. #include는 공구통을 포함시키라는 명령어.
int main(void)
{
printf("Hello, world!"); // stdio라는 공구통 안에 든 printf()라는 망치를 사용하는 예시.
return 0;
}
printf() 함수
print formatted의 약자입니다. “양식에 맞게 출력하다”라는 뜻입니다. 그래서 탈출 문자열 혹은 서식 지정자와 함께 쓰입니다.
탈출 문자열(Escape Sequence)
탈출 문자 ’\’와 함께 작성된 문자열. C언어에서 문자열은 시작 큰 따옴표와 끝 큰 따옴표로 감싸져 있습니다. 이 문자열 도중에 다른 의미를 가지는 문자열을 넣어서 사용합니다. 즉, 잠시 문자열을 “탈출”합니다.
출력
| \n | 개행(New line) |
| \t | 탭(Tap) |
| \’ | 따옴표 출력 |
| \” | 쌍따옴표 출력 |
| \\ | 역슬래시 출력 |
| %% | % 출력 |
Ex010503) 개행하기
// Main.c
#include <stdio.h>
int main(void)
{
printf("Hello\\nworld!");
return 0;
}
Ex010504) 탈출 문자열
// Main.c
#include <stdio.h>
int main(void)
{
printf("She said, \\"We alright!\\"\\n");
printf("And I thought, \\'Um, that's not a big deal.\\'\\n");
printf("Our 1/4 quater profit rose by 10%% and earned \\\\1,000,000,000\\n");
printf("..\\\\Desktop\\\\C\\\\Section01\\\\printf()\\n");
return 0;
}
챕터 1-6 : 서식지정자
수업 목표
- 서식 지정자에 대해 배워본다.
- 진법에 대해 배워본다.
서식 지정자(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;
}
'TIL' 카테고리의 다른 글
| 내일배움캠프 DAY10 C++ 상태 창 구현하기 (0) | 2026.03.04 |
|---|---|
| C언어 챕터1 : 환경 설정 < 1-7 : 리터럴, 1-8 : 자료형 > (0) | 2026.02.24 |
| C언어 챕터1 : 환경 설정 < 1-3 Compiler, 1-4 프로젝트와 소스코드 생성 > (0) | 2026.02.24 |
| C언어 챕터1 : 환경 설정 < 1-1 코딩이란, 1-2 Low-Level Language와 High Level Language > (0) | 2026.02.24 |
| 26.02.12 TIL (0) | 2026.02.12 |