C 언어에서 파일 입출력은 프로그램이 파일과 상호작용하는 방식입니다. 즉, 컴퓨터의 저장 장치에 있는 파일을 읽거나 쓰는 작업을 수행하는 것입니다.
**파일 입출력 함수:** C언어에는 `fopen()`, `fclose()`, `fscanf()`, `fprintf()`, `fread()`, `fwrite()` 등과 같은 다양한 파일 입출력 함수가 제공됩니다.
* **`fopen()`**: 파일을 열고, 파일 포인터를 반환합니다.
* 첫 번째 인수는 파일의 이름입니다.
* 두 번째 인수는 열려야 하는 파일 모드 (읽기, 쓰기, 읽기/쓰기 등)를 나타내는 문자열입니다.
* `fopen()` 함수가 성공하면 파일 포인터를 반환하고, 실패하면 NULL을 반환합니다.
* **`fclose()`**: 파일을 닫습니다.
* **`fscanf()`**: 파일에서 데이터를 읽고, 형식에 맞춰 변수에 저장합니다.
* **`fprintf()`**: 파일로 데이터를 출력합니다.
* **`fread()`**: 파일에서 바이트 배열을 읽습니다.
* **`fwrite()`**: 파일로 바이트 배열을 씁니다.
**파일 모드:** 파일을 열 때 사용하는 모드는 파일 처리 방법을 결정합니다. 일반적인 모드는 다음과 같습니다.
* `r`: 파일을 읽기 모드로 여름 (기본 모드).
* `w`: 파일을 쓰기 모드로 여름. 이미 존재하는 파일은 덮어쓰입니다.
* `a`: 파일을 추가 모드로 여름. 기존 파일의 끝에 데이터를 추가합니다.
**파일 포인터:** 파일 입출력 함수에서 사용되는 파일 포인터는 파일과 연결된 지표입니다. 프로그램이 파일 안의 특정 위치를 찾아 읽거나 쓰기 위해 사용됩니다.
**예시:**
```c
#include <stdio.h>
int main() {
FILE *fp; // 파일 포인터 변수 선언
char name[50];
// 파일을 열기: "data.txt"를 읽기 모드로 열고 파일 포인터에 할당
fp = fopen("data.txt", "r");
if (fp == NULL) {
printf("파일 오픈 실패!\n");
return 1; // 에러 발생 시 프로그램 종료
}
// 파일에서 데이터 읽기: 이름을 입력받고 출력
fscanf(fp, "%s", name);
printf("입력된 이름: %s\n", name);
// 파일 닫기: 사용한 파일 포인터 해제
fclose(fp);
return 0;
}
```
이 예시는 `data.txt` 파일을 읽고 파일에서 저장된 이름을 출력하는 프로그램입니다.
댓글 달기