Microsoft Visual C++ Debug Library Program:C:WINDOWSsystem32PicsUU.scr File:fgets.c Line:60 Expression:str !=NULL For information on your program can cause an assertion failure,see the Visual C++ documentation on asserts. (Press Retry to debug the application)
经检发现是函数读写文件的错误,报错代码如下
void NONO() {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i; long r; char s[10], *p; fp = fopen("c:\test\in.dat","r") ; wf = fopen("c:\test\out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fgets(s, 10, fp); p = strchr(s, ' '); if (p) *p = 0; r = fun(s); fprintf(wf, "%ld ", r); } fclose(fp) ; fclose(wf) ; }
发现是文件的打开也就是fopen里面的路径错误
因此找到文件in.dat和out.dat改成正确的路径
void NONO() {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i; long r; char s[10], *p; fp = fopen("C:\EXAM\00000000\prog1\in.dat","r") ; wf = fopen("C:\EXAM\00000000\prog1\out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fgets(s, 10, fp); p = strchr(s, ' '); if (p) *p = 0; r = fun(s); fprintf(wf, "%ld ", r); } fclose(fp) ; fclose(wf) ; }
或者修改成相对路径
void NONO() {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i; long r; char s[10], *p; fp = fopen("..\in.dat","r") ; wf = fopen("..\out.dat","w") ; for(i = 0 ; i < 10 ; i++) { fgets(s, 10, fp); p = strchr(s, ' '); if (p) *p = 0; r = fun(s); fprintf(wf, "%ld ", r); } fclose(fp) ; fclose(wf) ; }
如此程序不会报Microsoft Visual C++ Debug Library fgets.c错