Newline in text files

130 views (last 30 days)
Florian
Florian on 25 Nov 2020
Commented: Florian on 25 Nov 2020
Hi!
I am very sorry to post this question, because it has already been answered multiple times in this forum. Unfortunately, the presented solution doesn't work for me. So, I am wondering what's going wrong.
I want to write some parameters in a .tex file. Following the hints in the mentioned posts, I opened my testfile with the option 'wt' to make sure that my newlines '\n' are recognized
fid1 = fopen('Testfile.txt','wt');
fprintf(fid1,'%s','abc');
fprintf(fid1,'%s','\n');
fprintf(fid1,'%s','def');
fprintf(fid1,'%s','\n');
fprintf(fid1,'%s','ghi \n jkl');
fclose(fid1);
But, independently of what I do, I obtain
abc\ndef\nghi \n klm
once I open 'Testfile.txt'.
Opening the file with 'w' and using additonally '\r' doesn't work either.
So, I am grateful for any hints that might help solving the problem!
Thank you in advance!
  2 Comments
Stephen23
Stephen23 on 25 Nov 2020
Edited: Stephen23 on 25 Nov 2020
"...to make sure that my newlines '\n' are recognized"
Your code does not have any newlines.
The character vector '\n' consists of a backslash and an 'n' character, and your fprintf calls, e.g.
fprintf(fid1,'%s','\n');
simply print that input string literally, so you get '\n' in the file (i.e. a backslash followed by an 'n').
If you want to interpret the characters '\n' as a newline, then they must be in the format string itself, e.g.:
fprintf(fid1,'%s\n','blah');
will print the text 'blah' followed by a newline (if using text mode appropriately selected to suit the OS).
It is not clear to me how your question is related to .tex files, or how TeX is related to this in any way.
Florian
Florian on 25 Nov 2020
Oh - I undestand. Thank you!
There is no relation to TeX files - there was just the 't' missing in the subject.
Thank you for pointing this out!

Sign in to comment.

Accepted Answer

Bjorn Gustavsson
Bjorn Gustavsson on 25 Nov 2020
When I want to explicitly write \n for new-line I include it explicitly in the string-specification:
fid1 = fopen('Testfile.txt','wt');
fprintf(fid1,'%s\n','abc');
fprintf(fid1,'%s\n','def');
fprintf(fid1,'%s\n%s','ghi','jkl');
fclose(fid1);
But since you write to a .tex-file this is only important if you do it in some environment like verbatim that will respect the new-lines for the output. Otherwise you could run with \\, depending on how that is propagating to the .tex-file you might have to have 4 consecutive \ to get \\ written to file.
HTH

More Answers (0)

Categories

Find more on Programming in Help Center and File Exchange

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!