visualstudioc中的程序设计
命令行始终打印“无法读取” 调试断言失败 程序:E:\CTDL\1311370\Debug\1311370.exe 文件:f:\dd\vctools\crt\crtw32\stdio\fclose.c 电话号码:46 表达式:(流!=NULL)visualstudioc中的程序设计,c,C,命令行始终打印“无法读取” 调试断言失败 程序:E:\CTDL\1311370\Debug\1311370.exe 文件:f:\dd\vctools\crt\crtw32\stdio\fclose.c 电话号码:46 表达式:(流!=NULL) 这个信息似乎很清楚。它告诉您,在fclose的实现内部的某个地方,有一个要求(通过断言强制)输入不能为NULL 事实上,如果您阅读文档,您将看到fclose接受指向流的文件*,而不是空指针 在您的代码中,当代码> FIN null >代码>时,您只需
这个信息似乎很清楚。它告诉您,在
fclose
的实现内部的某个地方,有一个要求(通过断言强制)输入不能为NULL
事实上,如果您阅读文档,您将看到fclose
接受指向流的文件*
,而不是空指针
<>在您的代码中,当<>代码> FIN <代码> <代码> null >代码>时,您只需调用<代码> fCHILL(FIN)<代码>。完全不具备逻辑性,如果您真的想要编写C++,那么处理文件I/O的方法比这更好。将C++图书打开到文件I/O章节并继续阅读!祝你好运。伙计。请C还是C++?哪一个?你选择用其中一种语言编程?你最后选了哪一个?(<代码>删除<代码>建议C++,是吗?为什么要标记C?),你的问题是?<代码> char b(1);<除了
'\0'
字符串终止符外,code>无法保存任何字符串。但是fgets()
保留了'\n'
新行,因此这是一个“一夸脱放进一品脱罐”的例子。它不离开intx=atoi(b)代码>需要处理的内容很多。
#include "1311370_SearchA1s.h"
#include "1311370_SortA1s.h"
void main(){
char fileIn[100], fileOut[100];
printf("Enter Link of The Test File : ");
flushall();
gets(fileIn);
printf("Enter Link of The Result Folder : ");
flushall();
gets(fileOut);
strcat(fileOut, "\\1311370_BaiThucHanhSo1.txt");//nối thêm vào đường dẫn ghi file
FILE * fin = fopen(fileIn, "r");
FILE * fout = fopen(fileOut, "w");
if (fin == NULL){
printf("Can Not Read File\n");
fclose(fin);
fclose(fout);
exit(0);
}
else{
char str[100], a[100], b[1];
fgets(str, 100, fin);
fprintf(fout , "Ex1Test1");
fgets(a, 100, fin);
fgets(b, 1, fin);
int n = countSpace(a) + 1;
int *array = convertStringToArray(a);
int x = atoi(b);
int pos = LSearch(array, n, x);
fprintf(fout , "%d" , pos);
delete array;
}
getch();
}