调试断言失败! (不正常)
Debug Assertion Failed! (Not Normal)
好的,我的问题是断言失败。我不明白的是,我的程序正确地从文件输入到数组,然后打印到屏幕上,但仍然显示此错误,我就是想不通。本程序还有更多功能,请忽略未使用的功能。
我的代码如下:
#include <stdio.h>
#include <stdlib.h>
#define MAX 272
FILE* csis;
void processFile(char line[]);
int cipher();
int main(void) {
char line[MAX];
processFile(line, MAX);
fclose(csis);
return (0);
}
void processFile(char line[]) {
FILE* fp;
int i = 0;
if (!(fp = fopen("congress.txt", "r"))) {
printf("File could not be opened for input.\n");
exit(1);
}
fseek(fp, 0, SEEK_END);
fseek(fp, 0, SEEK_SET);
for (i = 0; i < MAX; ++i) {
fscanf(fp, "%c", &line[i]);
printf("%c", line[i]);
}
fclose(fp);
}
int cipher() {}
我想你是说
fscanf(fp, "%s", &line[i]);
看起来你正在关闭一个未打开的文件句柄,以后你可以将你的文件句柄初始化为NULL,然后在关闭之前进行测试。
FILE *csis = NULL;
...
if (csis)
fclose(csis);
好的,我的问题是断言失败。我不明白的是,我的程序正确地从文件输入到数组,然后打印到屏幕上,但仍然显示此错误,我就是想不通。本程序还有更多功能,请忽略未使用的功能。
我的代码如下:
#include <stdio.h>
#include <stdlib.h>
#define MAX 272
FILE* csis;
void processFile(char line[]);
int cipher();
int main(void) {
char line[MAX];
processFile(line, MAX);
fclose(csis);
return (0);
}
void processFile(char line[]) {
FILE* fp;
int i = 0;
if (!(fp = fopen("congress.txt", "r"))) {
printf("File could not be opened for input.\n");
exit(1);
}
fseek(fp, 0, SEEK_END);
fseek(fp, 0, SEEK_SET);
for (i = 0; i < MAX; ++i) {
fscanf(fp, "%c", &line[i]);
printf("%c", line[i]);
}
fclose(fp);
}
int cipher() {}
我想你是说
fscanf(fp, "%s", &line[i]);
看起来你正在关闭一个未打开的文件句柄,以后你可以将你的文件句柄初始化为NULL,然后在关闭之前进行测试。
FILE *csis = NULL;
...
if (csis)
fclose(csis);