파일은 기록의 모음이거나 데이터가 영구적으로 저장되는 하드 디스크의 한 장소입니다.
파일 작업
C 프로그래밍 언어의 파일에 대한 작업은 다음과 같습니다. -
- 파일 이름 지정
- 파일 열기
- 파일에서 읽기
- 파일에 쓰기
- 파일 닫기
구문
파일을 여는 구문은 다음과 같습니다 -
FILE *File pointer;
예를 들어, 파일 * fptr;
파일 이름을 지정하는 구문은 다음과 같습니다. -
File pointer = fopen ("File name", "mode");
예를 들어,
fptr = fopen ("sample.txt", "r"); FILE *fp; fp = fopen ("sample.txt", "w");
파일에서 오류 처리
파일의 일부 오류는 다음과 같습니다 -
- 파일 끝을 넘어서 읽으려고 합니다.
- 장치 오버플로.
- 잘못된 파일을 열려고 합니다.
- 다른 모드에서 파일을 열어 잘못된 작업을 수행합니다.
오류( )
읽기/쓰기 작업을 수행하는 동안 오류를 감지하는 데 사용됩니다.
ferror() 함수의 구문은 다음과 같습니다 -
구문
int ferror (file pointer);
예를 들어,
예시
FILE *fp; if (ferror (fp)) printf ("error has occurred");
성공하면 0을 반환하고 0이 아니면 반환합니다.
프로그램
다음은 ferror() 함수를 사용하기 위한 C 프로그램입니다 -
#include<stdio.h> int main(){ FILE *fptr; fptr = fopen("sample.txt","r"); if(ferror(fptr)!=0) printf("error occurred"); putc('T',fptr); if(ferror(fptr)!=0) printf("error occurred"); fclose(fptr); return 0; }
출력
위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -
error occurred Note: try to write a file in the read mode results an error.
오류( )
에러를 출력할 때 사용합니다.
perror() 함수의 구문은 다음과 같습니다 -
구문
perror (string variable);
예를 들어,
예시
FILE *fp; char str[30] = "Error is"; perror (str);
출력은 다음과 같습니다 -
Error is: error 0
프로그램
다음은 perror() 함수를 사용하기 위한 C 프로그램입니다 -
#include<stdio.h> int main ( ){ FILE *fp; char str[30] = "error is"; int i = 20; fp = fopen ("sample.txt", "r"); if (fp == NULL){ printf ("file doesnot exist"); } else{ fprintf (fp, "%d", i); if (ferror (fp)){ perror (str); printf ("error since file is opened for reading only"); } } fclose (fp); return 0; }
출력
위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -
error is: Bad file descriptor error since file is opened for reading only
feof( )
파일의 끝에 도달했는지 여부를 확인하는 데 사용됩니다.
feof() 함수의 구문은 다음과 같습니다 -
구문
int feof (file pointer);
예를 들어,
예시
FILE *fp; if (feof (fp)) printf ("reached end of the file");
성공하면 0이 아닌 값을 반환하고 그렇지 않으면 0을 반환합니다.
프로그램
다음은 feof() 함수를 사용하기 위한 C 프로그램입니다 -
#include<stdio.h> main ( ){ FILE *fp; int i,n; fp = fopen ("number. txt", "w"); for (i=0; i<=100;i= i+10){ putw (i, fp); } fclose (fp); fp = fopen ("number. txt", "r"); printf ("file content is"); for (i=0; i<=100; i++){ n = getw (fp); if (feof (fp)){ printf ("reached end of file"); break; }else{ printf ("%d", n); } } fclose (fp); getch ( ); }
출력
위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -
File content is 10 20 30 40 50 60 70 80 90 100 Reached end of the file.