弹出警告MicrosoftVisualC++DebugLibraryfgets.c报错解决办法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
弹出警告MicrosoftVisualC++DebugLibraryfgets.c报错解决办法Microsoft Visual C++ Debug Library
Program:C:\WINDOWS\system32\PicsUU.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, '\n');
if (p) *p = 0;
r = fun(s);
fprintf(wf, "%ld\n", 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, '\n');
if (p) *p = 0;
r = fun(s);
fprintf(wf, "%ld\n", 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, '\n');
if (p) *p = 0;
r = fun(s);
fprintf(wf, "%ld\n", r);
}
fclose(fp) ;
fclose(wf) ;
}
如此程序不会报Microsoft Visual C++ Debug Library fgets.c错。