C 언어의 파일에 대해 수행할 수 있는 작업은 다음과 같습니다. -
- 파일 이름 지정.
- 파일 열기.
- 파일에서 읽기.
- 파일에 쓰기.
- 파일을 닫습니다.
구문
파일 열기 및 이름 지정 구문 다음과 같습니다 -
FILE *File pointer;
예를 들어, 파일 * fptr;
File pointer = fopen ("File name”, "mode”); 예를 들어, fptr =fopen("sample.txt", "r")
FILE *fp;
fp = fopen ("sample.txt”, "w”); 파일 열기 모드
C 언어로 파일을 여는 모드는 아래에 설명되어 있습니다 -
| 모드 | 설명 |
|---|---|
| r | 읽기 위해 파일이 열립니다. |
| w | 파일이 쓰기 위해 열려 있습니다. |
| a+ | 추가를 위해 열린 파일 |
| r+ | 읽기 및 쓰기를 위해 열린 파일 |
| w+ | 쓰기 및 읽기를 위해 열린 파일 |
| a+ | 추가 및 읽기를 위해 열린 파일 |
| RT | 읽기 위해 텍스트 파일이 열립니다. |
| 무게 | 쓰기를 위해 텍스트 파일이 열립니다. |
| 추가를 위해 텍스트 파일이 열립니다. | |
| r+t | 읽기 및 쓰기를 위해 텍스트 파일이 열립니다. |
| w+t | 쓰기 및 읽기를 위해 텍스트 파일이 열립니다. |
| a+t | 추가 및 읽기를 위해 텍스트 파일이 열립니다. |
| rb | 이진 파일이 읽기 위해 열려 있습니다. |
| wb | 쓰기를 위해 바이너리 파일이 열립니다. |
| ab | 추가를 위해 바이너리 파일이 열립니다. |
| r+b | 이진 파일이 읽기 및 쓰기를 위해 열립니다. |
| w+b | 쓰기 및 읽기를 위해 바이너리 파일이 열립니다. |
| a+b | 이진 파일은 추가 및 읽기 모두에 대해 열립니다. |
- 파일을 여는 쓰기 모드
구문은 다음과 같습니다 -
FILE *fp;
fp = fopen ("sample.txt”, "w”); 파일이 없으면 새 파일이 생성됩니다.
파일이 존재하면 기존 내용은 지워지고 현재 내용이 저장됩니다.
- 파일을 여는 읽기 모드
구문은 다음과 같습니다 -
FILE *fp
fp =fopen ("sample.txt”, "r”); 파일이 존재하지 않으면 fopen 함수는 NULL 값을 반환합니다.
파일이 있으면 파일에서 데이터를 성공적으로 읽습니다.
- 파일을 여는 추가 모드
구문은 다음과 같습니다 -
FILE *fp;
fp =fopen ("sample.txt", "a"); 파일이 없으면 새 파일이 생성됩니다.
파일이 존재하면 현재 콘텐츠가 이전 콘텐츠에 추가됩니다.
| 모드 | 종료 | 나가지 않음 |
|---|---|---|
| R | 읽기 | fp="NULL" |
| W | 현재 콘텐츠 | 새 파일이 생성됩니다 |
| A | 이전 콘텐츠현재 콘텐츠 | 새 파일이 생성됩니다. |
예시
다음은 파일 작업을 위한 C 프로그램입니다 -
//Program for copying the contents of one file into another file
#include <stdio.h>
#include <stdlib.h> // For exit()
int main(){
FILE *fptr1, *fptr2;
char filename[100], c;
printf("Enter the filename to open for reading \n");
scanf("%s",filename);
// Open one file for reading
fptr1 = fopen(filename, "r");
if (fptr1 == NULL){
printf("Cannot open file %s \n", filename);
exit(0);
}
printf("Enter the filename to open for writing \n");
scanf("%s", filename);
// Open another file for writing
fptr2 = fopen(filename, "w");
if (fptr2 == NULL){
printf("Cannot open file %s \n", filename);
exit(0);
}
// Read contents from file
c = fgetc(fptr1);
while (c != EOF){
fputc(c, fptr2);
c = fgetc(fptr1);
}
printf("\nContents copied to %s", filename);
fclose(fptr1);
fclose(fptr2);
return 0;
} 출력
위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -
Enter the filename to open for reading file2.txt Enter the filename to open for writing file1.txt Contents copied to file1.txt