我很困惑为什么我收到这个错误。当我打开一个新文件并运行我的代码时,它运行顺利,但如果我在第二天或同一天晚些时候打开同一个文件,我会收到此错误。
works = cd;
t=(now);
s2 = datestr(t,'-FFF');
s3 = 6;
ind = [s2,s3];
try
Zahler=[works,'zahler.txt'];
fza=fopen(Zahler,'r');
gen=fscanf(fza,'%8i');
try
Test = 1/gen;
catch
gen = 1;
end
gen=gen+1;
fclose (fza);
fza=fopen(Zahler,'w');
fprintf(fza,'%8i',gen);
fclose (fza);
catch
Zahler=[works,'zahler.txt'];
fza=fopen(Zahler,'w');
gen = 0;
fprintf(fza,'%8i',gen);% This is the error line
end
如果有人让我知道如何永久解决这个问题,我会很高兴。
答案 0 :(得分:0)
如果在关闭文件之前发生异常,则会出现此错误。因此,您应该检查先前的文件打开是否尚未关闭,您应该先关闭它。然后重新打开文件并执行您想要的操作。此外,您应该记得在catch
范围结束时关闭该文件。要做到这一点,最好使用fclose('all')
来确保所有打开的文件都在catch
范围的开头关闭,如下所示:
try
% ...
catch
fclose('all');
Zahler=[works,'zahler.txt'];
fza=fopen(Zahler,'w');
gen = 0;
fprintf(fza,'%8i',gen);% This is the error line
fclose(fza);
end