Newline in text files
102 views (last 30 days)
Show older comments
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
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.
Accepted Answer
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)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!