Standard C
C 언어 scanf 사용법 완벽 가이드
레퍼러
2025. 2. 22. 21:56
scanf 함수는 C 언어에서 표준 입력으로부터 데이터를 읽어 변수에 저장할 때 사용됩니다. 다양한 형식의 입력을 처리할 수 있으며 사용자 입력을 프로그램에 전달하는 데 필수적인 함수입니다.
1. scanf 함수 기본 문법
#include <stdio.h>
int scanf(const char *format, ...);
매개변수 설명:
- format: 입력 데이터의 형식을 지정하는 문자열입니다.
- ...: 형식 문자열에 따라 데이터를 저장할 변수들의 주소입니다.
반환 값:
- 성공적으로 읽은 항목의 개수 반환
- 입력 오류 발생 시 EOF 반환
2. scanf 사용 목적
- 사용자로부터 입력을 받아 변수에 저장
- 다양한 데이터 유형 입력 처리 (int, float, char, string 등)
- 입력 오류 검사 및 처리
3. 기본 사용 예제
#include <stdio.h>
int main() {
int number;
printf("숫자를 입력하세요: ");
scanf("%d", &number);
printf("입력한 숫자: %d\\n", number);
return 0;
}
출력 결과:
숫자를 입력하세요: 42
입력한 숫자: 42
4. 실전 활용 예제
4.1. 여러 데이터 입력 받기
#include <stdio.h>
int main() {
int age;
float height;
printf("나이와 키를 입력하세요 (예: 25 175.5): ");
scanf("%d %f", &age, &height);
printf("나이: %d, 키: %.1fcm\\n", age, height);
return 0;
}
출력 결과:
나이와 키를 입력하세요 (예: 25 175.5): 25 175.5
나이: 25, 키: 175.5cm
4.2. 문자열 입력 받기
#include <stdio.h>
int main() {
char name[50];
printf("이름을 입력하세요: ");
scanf("%s", name);
printf("안녕하세요, %s님!\\n", name);
return 0;
}
출력 결과:
이름을 입력하세요: 홍길동
안녕하세요, 홍길동님!
5. scanf 사용 시 주의할 점
- 버퍼 오버플로 방지: 문자열 입력 시 크기 제한자를 사용하세요.
scanf("%49s", name); // 최대 49자 입력 허용
- 공백 처리: 문자열 입력 시 공백이 포함된 입력은 fgets를 사용하는 것이 안전합니다.
- 반환 값 확인: 입력된 데이터 수를 반환하므로 입력 오류를 확인할 수 있습니다.
if (scanf("%d", &number) != 1) { printf("잘못된 입력입니다.\\n"); }
6. 오류 처리 예제
#include <stdio.h>
int main() {
int value;
printf("정수를 입력하세요: ");
if (scanf("%d", &value) != 1) {
printf("정수가 아닙니다. 프로그램을 종료합니다.\\n");
return 1;
}
printf("입력한 정수: %d\\n", value);
return 0;
}
출력 결과:
정수를 입력하세요: abc
정수가 아닙니다. 프로그램을 종료합니다.
7. 결론
scanf 함수는 사용자 입력을 처리하는 강력한 도구입니다. 다양한 데이터 유형을 처리할 수 있으며, 입력 오류 처리 및 버퍼 오버플로 방지를 위해 주의 깊게 사용해야 합니다. scanf를 적절히 활용하여 사용자와 상호작용하는 안정적인 프로그램을 작성해 보세요.