파일에서 발생하는 일부 오류는 다음과 같습니다. -
- 파일 끝을 넘어서 읽으려고 합니다.
- 장치 오버플로.
- 잘못된 파일을 열려고 합니다.
- 다른 모드에서 파일을 열면 잘못된 작업이 수행됩니다.
오류 처리를 위한 함수
오류 처리를 위한 기능은 다음과 같습니다 -
- 오류( )
- 오류( )
- 페프( )
오류( )
읽기 또는 쓰기 작업을 수행하는 동안 오류를 감지하기 위한 것입니다.
구문은 다음과 같습니다 -
int ferror (file pointer);
예를 들어,
FILE *fp;
if (ferror (fp))
printf ("error has occurred”); 성공하면 0을 반환하고 다른 경우에는 0이 아닌 값으로 반환합니다.
오류( )
에러를 출력할 때 사용합니다.
콜론, 공백 및 현재 오류 값의 텍스트 표현이 뒤따르는 전달되는 문자열을 보여줍니다.
구문은 다음과 같습니다 -
perror (string variable);
예를 들어,
FILE *fp; char str[30] = ”Error is”; perror (str);
출력
Error is: error 0
예
다음은 ferror( ) 사용을 위한 C 프로그램입니다. 및 오류( ) 기능 -
#include<stdio.h>
main ( ){
FILE *fp;
char str[30] = "error is";
int i = 20;
clrscr ( );
fp = fopen ("sample. txt", "r");
if (fp = = NULL){
printf ("file doesnot exist");
} else {
fprintf (fp, "%d", i);
if (ferror (fp)){
perror (str);
printf ("error ");
}
fclose (fp);
getch ( );
} 출력
위의 프로그램을 실행하면 다음과 같은 결과가 나온다 -
Error is: Error1 compiler generated. Error.
페프( )
파일의 끝에 도달했는지 여부를 확인하는 데 사용됩니다.
구문은 다음과 같습니다 -
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;
clrscr ( );
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.