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

Các kỹ thuật xử lý lỗi trong ngôn ngữ C là gì?

Một số lỗi xảy ra trong tệp được liệt kê bên dưới -

  • Đ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ệ.
  • Thao tác không hợp lệ được thực hiện bằng cách mở tệp ở một chế độ khác.

Các hàm xử lý lỗi

Các chức năng xử lý lỗi như sau -

  • ferror ()
  • perror ()
  • feof ()

ferror ()

Nó dùng để phát hiện lỗi trong khi thực hiện các thao tác đọc hoặc ghi.

Cú pháp như sau -

int ferror (file pointer);

Ví dụ:

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

Nó trả về 0, nếu thành công và trả về khác 0 trong các trường hợp khác.

perror ()

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

Nó hiển thị chuỗi chuyển đến nó, theo sau là dấu hai chấm, dấu cách và biểu diễn văn bản của giá trị lỗi hiện tại.

Cú pháp như sau -

perror (string variable);

Ví dụ:

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

Đầu ra

Error is: error 0

Exaple

Sau đây là chương trình C để sử dụng ferror () perror () chức năng -

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

Đầu ra

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

Error is: Error1 compiler generated.
Error.

feof ()

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

Cú pháp như sau -

int feof ( file pointer);

Ví dụ:

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

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

Ví dụ

Sau đây là chương trình C để sử dụng feof () chức năng -

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

Đầ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.