Computer >> Máy Tính >  >> Lập trình >> lập trình C

Giải thích C Các chức năng xử lý lỗi

Tệp là tập hợp các bản ghi hoặc là một nơi trên đĩa cứng, nơi dữ liệu được lưu trữ vĩnh viễn.

Thao tác trên tệp

Các thao tác trên tệp trong ngôn ngữ lập trình C như sau -

  • Đặt tên cho tệp
  • Mở tệp
  • Đọc từ tệp
  • Ghi vào tệp
  • Đóng tệp

Cú pháp

Cú pháp để mở một tệp như sau -

FILE *File pointer;

Ví dụ:FILE * fptr;

Cú pháp đặt tên tệp như sau -

File pointer = fopen ("File name", "mode");

Ví dụ:

fptr = fopen ("sample.txt", "r");
FILE *fp;
fp = fopen ("sample.txt", "w");

Xử lý lỗi trong tệp

Một số lỗi trong tệp như sau -

  • Đang cố gắng đọc hết phần cuối của tệp.
  • Thiết bị vượt luồng.
  • Đang cố gắng mở một tệp không hợp lệ.
  • Thực hiện thao tác không hợp lệ bằng cách mở tệp ở chế độ khác.

ferror ()

Nó được sử dụng để phát hiện lỗi trong khi thực hiện các thao tác đọc / ghi.

Cú pháp cho hàm ferror () như sau -

Cú pháp

int ferror (file pointer);

Ví dụ:

Ví dụ

FILE *fp;
if (ferror (fp))
printf ("error has occurred");

Nó trả về 0, nếu thành công và khác 0, nếu không.

Chương trình

Sau đây là chương trình C để sử dụng hàm ferror () -

#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;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

error occurred
Note: try to write a file in the read mode results an error.

perror ()

Nó được sử dụng để in lỗi.

Cú pháp cho hàm perror () như sau -

Cú pháp

perror (string variable);

Ví dụ:

Ví dụ

FILE *fp;
char str[30] = "Error is";
perror (str);

Kết quả như sau -

Error is: error 0

Chương trình

Sau đây là chương trình C để sử dụng hàm perror () -

#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;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

error is: Bad file descriptor
error since file is opened for reading only

feof ()

Nó được sử dụng để kiểm tra xem phần cuối của tệp đã đến (hay) chưa.

Cú pháp cho hàm feof () như sau -

Cú pháp

int feof (file pointer);

Ví dụ:

Ví dụ

FILE *fp;
if (feof (fp))
printf ("reached end of the file");

Nó trả về một khác 0, nếu thành công và 0, nếu không.

Chương trình

Sau đây là chương trình C để sử dụng hàm feof () -

#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 ( );
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

File content is
10 20 30 40 50
60 70 80 90 100
Reached end of the file.