파일은 기록의 모음이거나 데이터가 영구적으로 저장되는 하드 디스크의 한 장소입니다.
파일 작업
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.