fprintf output line break

조회 수: 1,062 (최근 30일)
Nikolay Rodionov
Nikolay Rodionov 2012년 8월 4일
댓글: LeChat 2021년 8월 17일
Hi all,
I am writing a code where under a string is generated and stored in an array.
After the array is stored, I use fprintf to write the array into an data file, and then later on the string within the array is replaced within a new string and the cycle repeats.
The problem I am having is that I have been unable to make each fprintf cmd to print in a new line in the output file so I get something looking like this:
dataline dataline dataline dataline dataline dataline dataline
...instead of this:
dataline
dataline
dataline
dataline
dataline
I've been tinkering with formatting but I still can't get it right. Can any one help me?
Thanks!!!
  댓글 수: 1
Joao Linhares
Joao Linhares 2016년 11월 10일
On my side it worked by:
fprintf(fid, '%s', thestring);
fprintf(fid,'\n');
So basically if you split the code it works better.
Cheers

댓글을 달려면 로그인하십시오.

채택된 답변

Walter Roberson
Walter Roberson 2012년 8월 4일
fprintf(fid, '%s\n', TheString);
  댓글 수: 3
Midhulesh Vellanki
Midhulesh Vellanki 2017년 11월 1일
This works, but open your file in Notepad++ or other application, default windows application does not represent the correct format, sometime shows new line as a space.
Walter Roberson
Walter Roberson 2019년 2월 22일
On Windows, when you fopen() your file then use 'wt' instead of just 'w' to force CR+NL to be output instead of just NL

댓글을 달려면 로그인하십시오.

추가 답변 (4개)

Image Analyst
Image Analyst 2012년 8월 4일
Try
fprintf(fid, '%s\n\r', TheString);
If that doesn't work try it with the n and r reversed.
fprintf(fid, '%s\r\n', TheString);
One of them should work.
  댓글 수: 1
LeChat
LeChat 2021년 8월 17일
Thank you!
fprintf(fid, '%s\r\n', TheString);
worked for me (Matlab 2021a on Windows).

댓글을 달려면 로그인하십시오.


Matthew Cooper
Matthew Cooper 2019년 2월 21일
If you are writing to a file recursively, you may need to substitute 'a' for 'w' on fopen:
fopen(fid,'foo.txt','w');
fprintf(fid,formatspec,text);
fclose(fid);
fopen(fid,'foo.txt','a');
fprintf(fid,formatspec,newtext);
  댓글 수: 2
Walter Roberson
Walter Roberson 2019년 2월 22일
That would not affect the user's situation. This was a newline vs carriage-return+newline matter.
Matthew Cooper
Matthew Cooper 2019년 2월 22일
Can you suggest a better thread for my contribution? When you invert my answer for a question and ask it, you arrive here. It would have helped me, I am sure it will help someone else. Your clarification is also helpful. Cheers.

댓글을 달려면 로그인하십시오.


Samu TanakaBlitch
Samu TanakaBlitch 2016년 4월 22일
I was having the same issue earlier today when i was writing the code and other solutions i found on the internet was not working so i just inserted a disp('"space"') to make it push to the next line.
(earlier it was like this)
(afterwards)
(example of working one)
fprintf( 'The peak resultant head acceleration experienced in the TC-14 crash test is %4.2f g.',peak)
disp(' ')
fprintf('The peak resultant head acceleration experienced in the HCR-16 crash test is %4.2f g.',peakhcr)
disp(' ')
fprintf('The peak resultant head acceleration experienced in the FF-15 crash test is %4.2f g.',peakff)
  댓글 수: 1
Walter Roberson
Walter Roberson 2016년 4월 22일
You should have just put in \n
fprintf( 'The peak resultant head acceleration experienced in the TC-14 crash test is %4.2f g.\n',peak)

댓글을 달려면 로그인하십시오.


Christine Itchon
Christine Itchon 2020년 6월 19일
What do you think would happen if the newline character were omitted from the fprintf statement below?
>> fprintf(‘The value is %d, for sure!\n’,4^3)
  댓글 수: 1
Image Analyst
Image Analyst 2020년 6월 19일
Go ahead and try it.
>> fprintf('The value is %d, for sure!\n',4^3)
The value is 64, for sure!
>> fprintf('The value is %d, for sure!',4^3)
The value is 64, for sure!>>
As you can see if the final newline is omitted, the >> prompt does not happen on the next line. It happens on the same line.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Cell Arrays에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by