Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

อธิบาย C ฟังก์ชั่นการจัดการข้อผิดพลาด


ไฟล์คือชุดของเรคคอร์ดหรือเป็นที่บนฮาร์ดดิสก์ซึ่งข้อมูลจะถูกเก็บไว้อย่างถาวร

การทำงานของไฟล์

การทำงานของไฟล์ในภาษาซีมีดังนี้ -

  • การตั้งชื่อไฟล์
  • การเปิดไฟล์
  • การอ่านจากไฟล์
  • การเขียนลงในไฟล์
  • ปิดไฟล์

ไวยากรณ์

ไวยากรณ์ในการเปิดไฟล์มีดังนี้ −

FILE *File pointer;

ตัวอย่างเช่น FILE * fptr;

ไวยากรณ์สำหรับการตั้งชื่อไฟล์มีดังนี้ -

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

ตัวอย่างเช่น

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

การจัดการข้อผิดพลาดในไฟล์

ข้อผิดพลาดบางอย่างในไฟล์มีดังนี้ -

  • พยายามอ่านให้เกินกว่าจุดสิ้นสุดของไฟล์
  • อุปกรณ์ล้น
  • กำลังพยายามเปิดไฟล์ที่ไม่ถูกต้อง
  • ดำเนินการที่ไม่ถูกต้องโดยเปิดไฟล์ในโหมดอื่น

ferror( )

ใช้สำหรับตรวจจับข้อผิดพลาดขณะดำเนินการอ่าน/เขียน

ไวยากรณ์สำหรับฟังก์ชัน ferror() มีดังนี้ −

ไวยากรณ์

int ferror (file pointer);

ตัวอย่างเช่น

ตัวอย่าง

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

คืนค่าศูนย์หากสำเร็จและไม่ใช่ศูนย์มิฉะนั้น

โปรแกรม

ต่อไปนี้เป็นโปรแกรม C สำหรับใช้ฟังก์ชัน 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;
}

ผลลัพธ์

เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

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

โปรแกรม

ต่อไปนี้เป็นโปรแกรม C สำหรับใช้ฟังก์ชัน 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;
}

ผลลัพธ์

เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

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

เฟอออฟ( )

ใช้สำหรับตรวจสอบว่าถึงจุดสิ้นสุดของไฟล์ (หรือไม่)

ไวยากรณ์สำหรับฟังก์ชัน feof() มีดังนี้ -

ไวยากรณ์

int feof (file pointer);

ตัวอย่างเช่น

ตัวอย่าง

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

คืนค่าที่ไม่ใช่ศูนย์หากสำเร็จและเป็นศูนย์มิฉะนั้น

โปรแกรม

ต่อไปนี้เป็นโปรแกรม C สำหรับใช้ฟังก์ชัน 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 ( );
}

ผลลัพธ์

เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

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