使用 MATLAB 的 fprintf 在记事本中看不到换行符

newlines not visible in notepad with MATLAB's fprintf

我正在尝试使用 MATLAB 循环将新行附加到 .txt 文件,如下所示:

for i=1:N
    % do something
    % something done. write them to text file:
    fid = fopen(outfile, 'a');
    for j = 1:numel(smth.text)
        fprintf(fid, '\n%s;%d', smth.text{j}, smth.data(j));
    end
    fclose(fid);
end

完成后,我在 Notepad++ 中打开文件(如果相关,编码为 UTF-8)并正确查看,即:

text1;data1
text2;data2
etc

然而,当我在 Windows' 记事本中打开文件时,我看到它是这样的:

text1;data1text2;data2etc

所以记事本中没有显示换行符。

我该如何解决这个问题,以便到处都能换行?

感谢您的帮助,

需要在yoru fprintf命令中为windows记事本添加\r来识别换行符(不影响notepad++显示)

for i=1:N
  % do something
  fid = fopen(outfile, 'a');
  for j = 1:numel(smth)
    fprintf(fid, '\r\n%s;%d', smth.text{j}, smth.data(j));
  end
  fclose(fid);
end

关于 \r\n 之间的区别的一个很好的解释可以在 here

中找到