【发布时间】:2016-07-26 11:34:25
【问题描述】:
我在同一个程序中创建了文件“wor.txt”并关闭了它的写入流。但是当我尝试在第一次运行时访问它(我创建了文件)它给出了分段错误但是当我重新运行这个程序时它运行成功。
当我删除自动生成的文件并再次运行程序时,它会出现分段错误,并在第二次运行时(不删除文件)再次成功运行。
注意:文本文件中有数据,因此它不是空的(我在文件管理器中第一次运行后看到它)
FILE *fp1= fopen("wor.txt","r");
FILE *f1= fopen("wordsa.txt","ab+");
if((f1==NULL)||(f2==NULL)){
printf("f1 or f2 is null");
}
char c='0';
while((c)!=EOF){
printf("Here is one marker\n");
c=fgetc(fp1); //This Line gives error
printf("Here is another marker\n");
fputc(c,f1);
}
【问题讨论】:
-
f1==NULL->fp1==NULL。如果您的代码格式正确,您自己就会看到这一点。此外,您应该使用一致的命名约定:调用两个变量f1和f2或fp1和fp2。 -
在检测到
fp1 == NULL之后(至少我假设在你的代码中你检查f2代替)你仍然继续