fgets write -1.000000e+00 in output file

2 views (last 30 days)
Hello,
I have a code that first opens a file (using fopen), then gets everyline from the file, however, when encountering the end-of-file, and the value is -1, it prints this value in the file generated. Thus, when comparing the original file with the one generated, I have the value -1.000000e+00 written at the end. I want to exclude this value, any suggestions?
file=fopen('poem.txt');
line_ex=fgets(file);
getit{1}=filepath %filepath was indicated before
getit{end+1}=line_ex
while ischar(line_ex)
line_ex=fgets{file};
getit{end+1}=line_ex
end
fclose(file);

Accepted Answer

Stephen23
Stephen23 on 21 Mar 2022
while ~feof(file)
  3 Comments
Stephen23
Stephen23 on 22 Mar 2022
It works for me:
fid = fopen('old.txt','rt');
fnd = fopen('new.txt','wt');
while ~feof(fid)
str = fgetl(fid);
fprintf(fnd,'%s\n',str);
end
fclose(fid);
fclose(fnd);
type new.txt
AA BB CC
Clearly you are doing something different. But because you do not show your code, I cannot debug it.
Mohamed AKI Ahmed
Mohamed AKI Ahmed on 30 May 2022
Sorry for the late reply. It does work now, thanks a lot for your help

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!