파일 다루기 함수
C언어에서 파일 다루기를 위해서는 다음과 같은 함수를 사용합니다.
- fopen(): 파일을 열기 위한 함수입니다.
- fclose(): 파일을 닫기 위한 함수입니다.
- fprintf(): 파일에 쓰기 위한 함수입니다.
- fscanf(): 파일에서 읽기 위한 함수입니다.
위의 함수들은 <stdio.h> 헤더 파일에 정의되어 있습니다.
파일 열기(fopen)
파일을 다루기 위해서는 파일을 열어야 합니다. 이때 사용하는 함수가 fopen() 함수입니다. 파일을 열 때는 파일명과 파일 열기 모드를 지정해야 합니다. 파일 열기 모드는 파일에 대한 다양한 작업을 할 때 필요한 모드입니다. 아래는 파일 열기 모드의 종류와 그 의미입니다.
- r : 읽기 모드로 파일을 엽니다. 파일이 없으면 NULL을 반환합니다.
- w : 쓰기 모드로 파일을 엽니다. 파일이 없으면 새로운 파일을 생성하고, 파일이 이미 있으면 그 내용을 모두 지우고 새로 씁니다.
- a : 쓰기 모드로 파일을 엽니다. 파일이 없으면 새로운 파일을 생성하고, 파일이 이미 있으면 그 뒤에 쓰기 작업을 수행합니다.
- r+ : 읽기와 쓰기 모드로 파일을 엽니다. 파일이 없으면 NULL을 반환합니다.
- w+ : 읽기와 쓰기 모드로 파일을 엽니다. 파일이 없으면 새로운 파일을 생성하고, 파일이 이미 있으면 그 내용을 모두 지우고 새로 씁니다.
- a+ : 읽기와 쓰기 모드로 파일을 엽니다. 파일이 없으면 새로운 파일을 생성하고, 파일이 이미 있으면 그 뒤에 쓰기 작업을 수행합니다.
예를 들어, 파일명이 "sample.txt"이고 쓰기 모드로 파일을 열 경우, 다음과 같이 fopen() 함수를 사용합니다.
FILE *fp = fopen("sample.txt", "w");
파일 닫기(fclose)
파일을 다룬 후에는 파일을 닫아야 합니다. 파일을 닫을 때는 fclose() 함수를 사용합니다. fclose() 함수는 파일 포인터를 인수로 받습니다. 아래는 파일을 닫는 예시 코드입니다.
int fclose(FILE *stream);
stream은 파일을 가리키는 포인터입니다. 파일을 닫으면 0을 반환합니다. 파일을 닫을 때, 파일에 대한 변경 사항을 디스크에 쓰도록 하는 것을 "flush"라고 합니다
파일에 쓰기(fprintf)
fprintf() 함수는 파일에 데이터를 쓰기 위해 사용됩니다. 이 함수는 printf() 함수와 비슷하지만, 출력 대상이 표준 출력이 아니라 파일이라는 것이 다릅니다.
fprintf() 함수의 기본 구조는 다음과 같습니다.
int fprintf(FILE *fp, const char *format, ...)
위 구조에서 첫 번째 인자는 출력할 파일 포인터입니다. 두 번째 인자는 출력할 문자열 형식을 지정하는 문자열입니다. 나머지 인자는 문자열에 대응하는 값입니다.
다음은 파일에 문자열과 숫자를 쓰는 간단한 예제입니다.
#include <stdio.h>
int main() {
FILE *fp;
fp = fopen("example.txt", "w"); // 쓰기 모드로 파일 열기
// 파일에 문자열 쓰기
fprintf(fp, "Hello, world!\n");
// 파일에 숫자 쓰기
int num = 123;
fprintf(fp, "num = %d\n", num);
fclose(fp); // 파일 닫기
return 0;
}
위 예제에서는 파일 포인터로 example.txt 파일을 쓰기 모드("w")로 열고, fprintf() 함수를 사용하여 파일에 문자열과 숫자를 씁니다. 마지막으로 파일을 닫습니다.
파일에서 읽기(fscanf)
fscanf() 함수는 파일에서 데이터를 읽어오기 위해 사용됩니다. 이 함수는 scanf() 함수와 비슷하지만, 입력 대상이 키보드 입력이 아니라 파일이라는 것이 다릅니다.
fscanf() 함수의 기본 구조는 다음과 같습니다.
int fscanf(FILE *fp, const char *format, ...)
위 구조에서 첫 번째 인자는 입력할 파일 포인터입니다. 두 번째 인자는 입력할 문자열 형식을 지정하는 문자열입니다. 나머지 인자는 문자열에 대응하는 변수입니다.
다음은 파일에서 문자열과 숫자를 읽어오는 간단한 예제입니다.
#include <stdio.h>
int main() {
FILE *fp;
fp = fopen("example.txt", "r"); // 읽기 모드로 파일 열기
// 파일에서 문자열 읽어오기
char str[100];
fscanf(fp, "%s", str);
printf("str: %s\n", str);
// 파일에서 숫자 읽어오기
int num;
fscanf(fp, "%d", &num);
printf("num: %d\n", num);
fclose(fp); // 파일 닫기
return 0;
}
위 예제에서는 파일 포인터로 example.txt 파일을 읽기 모드("r")로 열고, fscanf() 함수를 사용하여 파일에서 문자열과 숫자를 읽어옵니다. 마지막으로 파일을 닫습니다.
'차리토 실험실' 카테고리의 다른 글
"Meet Sugaring: My Adorable Sister Recreated as an AI Portrait" (0) | 2023.03.31 |
---|---|
C언어 예제 #10 (데이터베이스) (0) | 2023.03.31 |
C언어 예제 #8 (예외 처리) (0) | 2023.03.31 |
C언어 예제 #7 (메소드, 객체, 구조체) (0) | 2023.03.31 |
C언어 예제 #6 (함수 & 메소드) (0) | 2023.03.31 |