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와 혼동 주의!
'Language > C' 카테고리의 다른 글
| 📌 Chapter 04 - 변수와 자료형 - 변수의 기초 (0) | 2025.05.17 |
|---|---|
| 📌 Chapter 03 - 표준 입출력 함수 - 문자 코드 (0) | 2025.05.16 |
| 📌 Chapter 03 - 표준 입출력 함수 - 표준 입력 함수 (0) | 2025.05.16 |
| 📌 Chapter 02 - C 언어 작성 및 실행 (0) | 2025.05.15 |
| 📌 Chapter 01 - C 언어의 개요 (0) | 2025.05.14 |