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