Newline in text files
111 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Florian
el 25 de Nov. de 2020
Comentada: Florian
el 25 de Nov. de 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 comentarios
Stephen23
el 25 de Nov. de 2020
Editada: Stephen23
el 25 de Nov. de 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.
Respuesta aceptada
Bjorn Gustavsson
el 25 de Nov. de 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
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!