我想从文件中读取数据并将其保存到数组中。然后在这个数组中插入一些新数据,然后将这些新数据保存回同一个文件中,删除已经存在的文件。我的代码完美运行,给了我所需的数据,当我在 fopen 参数中有 'r+' 时,但是当我再次写入文件时,它不会删除文件中已有的数据,只是按预期将其附加到末尾。但是,当我将权限更改为“w+”而不是“r+”时,我的代码运行但没有数据被读入或写入文件!有谁知道为什么会这样?我的代码如下所示。
N = 1021;
b = [0;0;0;0;0];
% Opens file specified by user.
fid = fopen('testing','w+');
% Read header data
Header = fread(fid, 140);
% Move to start of data
fseek(fid,140,'bof');
% Read from end of config header to end of file and save it in an array
% called data
Data = fread(fid,inf);
Data=reshape(Data,N,[]);
b=repmat(b,[1 size(Data,2)]);
r=[b ; Data];
r=r(:);
r = [Header;r];
% write new values into file
fwrite(fid,r);
fclose(fid);
% Opens file specified by user.
fid = fopen('test');
All = fread(fid,inf);
fclose(fid);