下面列出了文件中发生的一些错误-
尝试读取文件末尾之外的内容。
设备溢出。
尝试打开无效的文件。
通过以不同的模式打开文件来执行无效的操作。
错误处理的功能如下-
恐惧()
恐怖()
伪装()
用于在执行读取或写入操作时检测错误。
语法如下-
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
以下是使用ferror()和perror()函数的C程序-
#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");
如果返回非零值,则表示成功。否则为零。
以下是使用feof()函数的C程序-
#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.