ข้อผิดพลาดบางอย่างที่เกิดขึ้นในไฟล์มีดังต่อไปนี้ -
- พยายามอ่านจนจบไฟล์
- อุปกรณ์ล้น
- กำลังพยายามเปิดไฟล์ที่ไม่ถูกต้อง
- การดำเนินการที่ไม่ถูกต้องทำได้โดยการเปิดไฟล์ในโหมดอื่น
ฟังก์ชันสำหรับการจัดการข้อผิดพลาด
ฟังก์ชันสำหรับการจัดการข้อผิดพลาดมีดังนี้ -
- ferror ( )
- ข้อผิดพลาด ( )
- เฟอออฟ ( )
ferror ( )
ใช้สำหรับตรวจจับข้อผิดพลาดขณะดำเนินการอ่านหรือเขียน
ไวยากรณ์มีดังนี้ −
int ferror (file pointer);
ตัวอย่างเช่น
FILE *fp; if (ferror (fp)) printf ("error has occurred”);
คืนค่าศูนย์ หากสำเร็จและคืนค่าเป็นศูนย์ในกรณีอื่นๆ
ข้อผิดพลาด ( )
ใช้สำหรับพิมพ์ข้อผิดพลาด
โดยจะแสดงสตริงที่ส่งผ่าน ซึ่งตามด้วยโคลอน ช่องว่าง และการแสดงข้อความของค่าความผิดพลาดในปัจจุบัน
ไวยากรณ์มีดังนี้ −
perror (string variable);
ตัวอย่างเช่น
FILE *fp; char str[30] = ”Error is”; perror (str);
ผลผลิต
Error is: error 0
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C สำหรับการใช้งาน ferror ( ) และ ข้อผิดพลาด ( ) ฟังก์ชัน −
#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");
หากคืนค่าที่ไม่ใช่ศูนย์แสดงว่าสำเร็จ มิฉะนั้นจะเป็นศูนย์
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C สำหรับการใช้งาน feof ( ) ฟังก์ชัน −
#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.