stdio.h란 무엇인가?
stdio.h는 'Standard Input Output(표준 입출력)'의 약자로, C 언어에서 입력·출력과 관련된 함수들의 정보를 담고 있는 헤더 파일입니다. 화면 출력, 키보드 입력, 파일 읽기·쓰기 등 프로그램이 외부와 데이터를 주고받을 때 필요한 기능들이 대부분 여기에 정의되어 있습니다.
아래 표는 stdio.h에서 자주 사용되는 대표적인 함수들을 정리한 것입니다.
| 번호 | 함수 및 설명 |
|---|---|
| 1 | printf() 문자열, 정수, 문자 등을 출력 화면에 출력합니다. |
| 2 | scanf() 키보드로부터 문자, 문자열, 정수 등을 입력받습니다. |
| 3 | getc() 파일(또는 스트림)에서 문자 하나를 읽어옵니다. |
| 4 | putc() 파일(또는 스트림)에 문자 하나를 씁니다. |
| 5 | fopen() 파일을 엽니다. 파일 처리 관련 함수들은 모두 stdio.h에 정의되어 있습니다. |
| 6 | fclose() 열려 있는 파일을 닫습니다. |
| 7 | remove() 파일을 삭제합니다. |
| 8 | fflush() 파일(버퍼)의 내용을 비워냅니다. |
이 외에도 getchar(), putchar(), fgets(), fprintf() 등 다양한 입출력 함수가 stdio.h에 포함되어 있습니다.
stdio.h 사용 예제
#include <stdio.h>
int main () {
char val;
printf("문자를 입력하세요: \n");
val = getc(stdin);
printf("입력한 문자: ");
putc(val, stdout);
return(0);
}실행 결과
문자를 입력하세요: s 입력한 문자: s
위 예제에서는 getc(stdin)으로 표준 입력(키보드)에서 문자 하나를 읽고, putc(val, stdout)으로 표준 출력(화면)에 그대로 출력하는 과정을 보여줍니다.
stdlib.h란 무엇인가?
stdlib.h는 'Standard Library(표준 라이브러리)'의 약자로, 메모리 할당·해제 함수를 비롯해 프로그램 제어, 문자열 변환, 난수 생성 등 다양한 범용 유틸리티 함수들을 담고 있는 헤더 파일입니다.
아래 표는 stdlib.h에서 자주 사용되는 대표적인 함수들을 정리한 것입니다.
| 번호 | 함수 및 설명 |
|---|---|
| 1 | malloc() 프로그램 실행 중에 필요한 만큼 메모리를 동적으로 할당합니다. |
| 2 | free() 할당된 메모리를 해제하여 시스템에 반환합니다. |
| 3 | abort() C 프로그램을 비정상적으로 강제 종료합니다. |
| 4 | exit() 프로그램을 즉시 종료하며, 호출한 곳으로 제어를 되돌려주지 않습니다. |
| 5 | atol() 문자열을 long int(긴 정수) 값으로 변환합니다. |
| 6 | atoll() 문자열을 long long int 값으로 변환합니다. |
| 7 | atof() 문자열을 부동소수점(double) 값으로 변환합니다. |
| 8 | rand() 임의의 정수(난수) 값을 반환합니다. |
그 밖에도 atoi(), abs(), system(), srand() 등 유용한 함수들이 stdlib.h에 포함되어 있습니다.
stdlib.h 사용 예제
#include <stdio.h>
#include <stdlib.h>
int main() {
char str1[20] = "53875";
char str2[20] = "367587938";
char str3[20] = "53875.8843";
long int a = atol(str1);
printf("문자열 → long int : %ld\n", a);
long long int b = atoll(str2);
printf("문자열 → long long int : %lld\n", b);
double c = atof(str3);
printf("문자열 → double : %f\n", c);
printf("첫 번째 난수 값 : %d\n", rand());
printf("두 번째 난수 값 : %d", rand());
return 0;
}실행 결과
문자열 → long int : 53875 문자열 → long long int : 367587938 문자열 → double : 53875.884300 첫 번째 난수 값 : 1804289383 두 번째 난수 값 : 846930886
위 예제는 문자열을 각각 정수형과 실수형으로 변환하는 atol(), atoll(), atof()의 동작과, rand()를 이용한 난수 생성 방법을 보여줍니다. 참고로 난수 값은 컴파일러나 실행 환경에 따라 달라질 수 있으며, 매번 다른 난수가 필요하다면 srand()로 시드(seed)를 설정해 주는 것이 좋습니다.
정리
stdio.h는 입출력 전용 헤더 파일로 화면 출력·키보드 입력·파일 처리를 담당하고, stdlib.h는 메모리 관리, 프로그램 종료, 문자열 변환, 난수 생성 등 프로그램 전반의 유틸리티 기능을 제공합니다. 두 헤더 파일은 C 언어 프로그래밍에서 가장 기본적이면서도 가장 많이 사용되는 파일들이므로, 각 함수의 역할을 정확히 이해하고 활용하는 것이 중요합니다.