fprintf 不打印新行
我正在尝试使用 fprintf() 命令将 [2 x N] 双倍大的数组发送到文本文件。我遇到的问题是 fprintf()
无法识别新行命令 (\n
) 或回车命令 (\r
) 。我正在使用的代码是
fid = fopen([Image.Dir,'CtlPts_',Image.Files{k},'.txt'],'w');
fprintf(fid,'%.4f\t%.4f\n',control_points{k});
fclose(fid);
我尝试打印的数据位于单元格 control_points{k}
中的位置。
该选项卡打印得很好,但文本文件中的所有内容都打印在一行上,所以这就是为什么我假设它忽略我的新行字符。
我的语法是否存在我没有看到的问题?
I am trying to send an array that is [2 x N] doubles large to a text file using the fprintf()
command. I am having problems in that fprintf()
is not recognizing the new line command (\n
) or the carriage return command (\r
). The code I am using is
fid = fopen([Image.Dir,'CtlPts_',Image.Files{k},'.txt'],'w');
fprintf(fid,'%.4f\t%.4f\n',control_points{k});
fclose(fid);
where the data I am trying to print is in the cell control_points{k}
.
The tab gets printed fine, but everything in the text file gets printed on one line, so this is why I am assuming that it is ignoring my new line character.
Is there something wrong with my syntax that I am not seeing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我知道在许多系统上, \n 不足以创建您所要求的内容(因此,也许您必须执行 \r\n )
I know that on many systems, \n is not enough to create what you're asking for (and so, maybe you have to do \r\n)
另一种解决方案是打开文本中的文件模式,这样 MATLAB 会在 Windows 系统上的输出中的任何换行符
\n
字符之前自动插入回车符\r
:请注意,这有些不必要,因为大多数编辑器(Microsoft 除外)记事本)识别 Unix/Mac/Windows 行结尾。
An alternative solution is to open the file in text mode, that way MATLAB automatically inserts a carriage return
\r
before any newline\n
character in the output on Windows systems:Note that this is somewhat unnecessary, since most editors (with the exception of Microsoft Notepad) recognize Unix/Mac/Windows line endings.