ข้อผิดพลาดบางอย่างที่เกิดขึ้นในไฟล์มีดังต่อไปนี้ -
- พยายามอ่านจนจบไฟล์
- อุปกรณ์ล้น
- กำลังพยายามเปิดไฟล์ที่ไม่ถูกต้อง
- การดำเนินการที่ไม่ถูกต้องทำได้โดยการเปิดไฟล์ในโหมดอื่น
ฟังก์ชันสำหรับการจัดการข้อผิดพลาด
ฟังก์ชันสำหรับการจัดการข้อผิดพลาดมีดังนี้ -
- 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.