티스토리 뷰
반응형
C언어 기초 Chapter 06: printf 함수와 scanf 함수 완전 정복
06-1. printf 함수 이야기
1) 기본 사용법
printf는 화면에 값을 출력하는 함수입니다.
#include <stdio.h>
int main(void) {
printf("Hello C!\n");
printf("정수: %d\n", 10);
printf("실수: %f\n", 3.14);
printf("문자: %c\n", 'A');
printf("문자열: %s\n", "Hello");
return 0;
}
- %d → 정수 출력
- %f → 실수 출력 (기본 6자리 소수)
- %c → 문자 1개
- %s → 문자열
- \n → 줄바꿈
2) 출력 형식 지정자 (Format Specifier)
- 정수
- %d 10진수
- %o 8진수
- %x, %X 16진수
- 실수
- %f 고정 소수점
- %e, %E 지수 표기
- %g, %G 자동 선택
- 기타
- %p 포인터(주소)
- %% 퍼센트 문자 자체 출력
3) 폭(width)과 정밀도(precision)
printf("[%5d]\n", 7); // [ 7] → 폭 5칸, 오른쪽 정렬
printf("[%-5d]\n", 7); // [7 ] → 왼쪽 정렬
printf("[%08d]\n", 123); // [00000123] → 0으로 채움
printf("[%.2f]\n", 3.14159);// [3.14] → 소수 둘째 자리까지
printf("[%10.3f]\n", 3.14159); // [ 3.142]
4) 예제 프로그램
#include <stdio.h>
int main(void) {
int a = 123;
double b = 3.14159;
printf("정수 기본: %d\n", a);
printf("정수 8진수: %o, 16진수: %x\n", a, a);
printf("실수 소수점 둘째자리: %.2f\n", b);
printf("실수 지수표기: %e\n", b);
return 0;
}
06-2. scanf 함수 이야기
1) 기본 사용법
scanf는 키보드로부터 입력을 받는 함수입니다.
#include <stdio.h>
int main(void) {
int age;
printf("나이를 입력하세요: ");
scanf("%d", &age); // 변수의 주소(&) 필요
printf("입력된 나이: %d\n", age);
return 0;
}
⚠️ 주의: scanf("%d", age); 처럼 &를 빼먹으면 오류 발생
2) 여러 개 입력받기
int a, b;
scanf("%d %d", &a, &b);
printf("a=%d, b=%d\n", a, b);
입력: 10 20 → 출력: a=10, b=20
3) 문자와 문자열 입력
char c;
char str[20];
scanf(" %c", &c); // 공백 제거용 " " 추가
scanf("%19s", str); // 최대 19자, 마지막에 '\0' 자동 추가
4) 입력 시 흔한 문제
- 개행 문자 문제
- 정수 입력 후 char 입력 시 \n이 버퍼에 남아 문제가 됨
- 해결: " %c" 처럼 앞에 공백 추가
- 버퍼 오버플로
- 문자열 입력 시 배열 크기보다 큰 데이터 입력 시 오류
- 해결: %ns 형식 지정자 사용 (예: %19s)
5) 예제 프로그램
#include <stdio.h>
int main(void) {
int x, y;
char name[20];
printf("두 정수를 입력하세요: ");
scanf("%d %d", &x, &y);
printf("이름을 입력하세요: ");
scanf("%19s", name);
printf("합: %d, 차: %d\n", x+y, x-y);
printf("입력한 이름: %s\n", name);
return 0;
}
핵심 정리 ✅
- printf는 출력 함수, scanf는 입력 함수
- 형식 지정자와 변수 타입을 반드시 맞추어야 함
- scanf에서는 주소(&) 가 꼭 필요 (문자열 제외)
- 개행 문자 문제와 버퍼 오버플로 주의
연습 문제 ✍️
- 사용자에게 정수 2개를 입력받아 합, 차, 곱, 나눗셈 결과를 모두 출력하세요.
- 섭씨 온도를 입력받아 화씨로 변환하세요.
- 공식: F = C * 9/5 + 32
- 이름과 나이를 입력받아 "안녕하세요, OOO님! 나이는 XX살이군요." 출력하세요.
반응형
'[문법] C언어' 카테고리의 다른 글
6) C언어 함수 완전정리: 정의, 호출, 변수 범위와 재귀까지 (4) | 2025.08.31 |
---|---|
5) C언어 조건문 완전정리: if / switch / break / continue (0) | 2025.08.31 |
4) C언어 반복문 완전정리: while, do~while, for 한눈에 배우기 (4) | 2025.08.31 |
2) C언어 비트 연산자, 상수, 자료형 개념 정리 (2) | 2025.08.31 |
1) C언어의 기본: C언어기초, 기본구성, 변수와 연산자 (6) | 2025.08.31 |