1. printf()를 이용한 출력
1-1. 기본 사용법
- 출력할 내용 : printf("출력하고 싶은 내용");
- 서식 지정자를 이용한 값 출력 : printf("%d + %d", 10, num);
1-2. 서식 지정자와 출력할 값 개수 불일치
- 서식 지정자가 더 많은 경우 : 남은 서식 지정자는 쓰레기 값
- 출력할 값이 더 많은 경우 : 남는 값 사용되지 않음
1-3. 서식 지정자 종류
| 분류 | 서식 지정자 | 대상 자료형 | 출력 형태 | 
|---|
| 정수형 | %d | int | 10진수 | 
|  | %u | unsigned int | 10진수 | 
|  | %o |  | 8진수 | 
|  | %x, %X |  | 16진수 | 
| 부동소수형 | %f | float | 고정 소수점 표기 | 
|  | %lf | double |  | 
| 문자형 | %c | char | 문자 하나 | 
|  | %s |  | 문자열 | 
1-4. 서식 지정자 확장
1) 출력 폭 지정
printf("%5d\n", 25);
printf("%9f\n", 2.5);
▼실행결과▼
□□□25
□2.500000
2) 정밀도 지정(부동소수)
printf("%.3f\n", 2.5);
printf("%.1f\n", 2.56);
printf("%6.2f\n", 2.5);
▼실행결과▼
2.500
2.6
□□2.50
4) 플래그
- 플래그 : 정렬방식, 부호 출력 방식, 진법 표시 방식 등을 조정하기 위해 사용
- 0 플래그 
printf("%05d\n", 25);
▼실행결과▼
00025
2. scanf()를 이용한 입력
2-1. 기본 사용법
- 서식 지정자를 쓰고, 뒤에 값을 저장할 변수 이름 명시
- 반드시 &기호 붙이기 (특별한 언급이 없으면)
- 자료형에 따라 사용되는 서식 지정자가 다름
2-2. 여러 값 입력 받기
- 예) 정수와 부동소수 입력 받기 : 값 구분 위해 보통 공백 사용
int a;
double b;
scanf("%d%lf", &a, &b);
printf("입력 값: %d %f\n", a, b);
▼키보드로 입력▼
5 3.1[Enter]
▼실행결과▼
입력 값: 5 3.100000
2-3. 여러 문자 입력 시 주의할 점
- 공백도 하나의 문자로 간주되어 입력 값으로 처리되므로 공백 없이 입력
char c1, c2;
scanf("%c%c", c1, c2);
printf("문자 출력: [%c][%c]\n", c1, c2);
▼키보드로 입력▼
AB[Enter]
▼실행결과▼
문자 출력: [A][B]
- 탭, 개행 문자도 동일하게 문자 입력으로 처리
char c1, c2;
printf("c1 입력: ");
scanf("%c", &c1 ); ⇨ 첫 번째 문자 입력
printf("c2 입력: ");
scanf("%c", &c2 ); ⇨ 두 번째 문자 입력
printf("문자 출력: [%c][%c]\n", c1, c2 );
▼실행결과▼
c1 입력: A[Enter]				// [Enter]키 \n 이 c2에 저장돼서
C2 입력: 문자 출력: [A][			// 출력 됨
]
- 원하는 형태로 입력받기 위한 해결책(트릭)
 ⇨ [Entet] 키로 입력되는 개행 문자를 임시 변수에 저장해 없애기
char c1, c2, tmp;
printf("c1 입력: ");
scanf("%c%c", &c1, &tmp);
printf("c2 입력: ");
scanf("%c%c", &c2, &tmp);
printf("문자 출력: [%c][%c]\n", c1, c2);
▼실행결과▼
c1 입력: A[Enter]				// 개행 문자는 tmp에 저장
C2 입력: B[Enter]
문자 출력: [A][B]
2-4. 문자와 정수(또는 부동소수)가 혼합되어 입력받는 경우
- 정수 입력에서는 공백, 탭, 개행 문자 무시됨
- 문자 입력에서는 공백, 탭, 개행 문자가 하나의 문자로 처리됨
2-5. 입력 구분자 지정하기
int a=0, b=0, c=0;
printf("정수 입력: ");
scanf("%d-%d-%d", &a, &b, &c);
printf("%d %d %d\n", a, b, c);
▼실행결과(입력 형식을 맞춘 예)▼
정수 입력: 20-10-30[Enter]
20 10 30
▼실행결과(입력 형식을 맞추지 않은 예)▼
정수 입력: 20 10 30[Enter]
20 0 0