换行 Linux Fortran 输出与 windows 不兼容
Newline Linux Fortran output incompatible with windows
我有一个最初在 Windows 上编译的 Fortran 程序,它获取纯文本输入文件并生成纯文本输出文件写入写入命令:
do fig=180,0,-1
write(jfil,'(i3.3,2x,f7.5,1x,f7.4,1x,2(1x,f9.4,1x,a3),2(2x,i3),2(1x,f9.4,1x,a3))') &
fig,xc(fig),cc(fig),(Pcav(je),fcav(je),je=1,2),agav,agad,(Pcad(je),fcad(je),je=1,2)
enddo
我需要在 Linux 上编译并 运行 它,但是当我在 windows 上阅读输出文件时,我遇到了端行字符兼容性问题。
这是我在 windows
上的记事本程序中所期望的
177 0.99947 0.2519 9.5946 com 36.4488 exp 3 357 9.5882 asp 36.6517 sca
176 0.99905 0.3358 9.5988 com 36.2943 exp 4 356 9.5874 asp 36.6534 sca
175 0.99851 0.4197 9.6043 com 36.0974 exp 5 355 9.5865 asp 36.6557 sca
174 0.99786 0.5036 9.6110 com 35.8594 exp 6 354 9.5853 asp 36.6585 sca
这就是我得到的
177 0.99947 0.2519 9.5946 com 36.4488 exp 3 357 9.5882 asp 36.6517 sca 176 0.99905 0.3358 9.5988 com 36.2943 exp 4 356 9.5874 asp 36.6534 sca 175 0.99851 0.4197 9.6043 com 36.0974 exp 5 355 9.5865 asp 36.6557 sca 174 0.99786 0.5036 9.6110 com 35.8594 exp 6 354 9.5853 asp 36.6585 sca
它是相同的输出但没有换行符,全部在一行输出中
这是众所周知的 Linux 和 Windows 之间的兼容性问题:
linux使用“\n”和windows使用“\r\n”写新行
是否有 Gfortran 标志来修改输出以与 Windows 兼容?
还有其他方法可以解决这个问题吗?
Gfortran 和 Windows 上的其他几个 languages/runtimes 应该可以很好地读取您的文件,即使使用 Unix 行终止也是如此。您必须向我们提供您在 VBA 或其他地方阅读时实际遇到的错误的详细信息,否则我们无法告诉您如何避免它。
还有其他方法可以解决这个问题吗?
是的,您可以 运行 著名的 unix2dos 实用程序将数据文件转换为 DOS/Windows 格式。或者链接网页中提到的一些替代实用程序。
我有一个最初在 Windows 上编译的 Fortran 程序,它获取纯文本输入文件并生成纯文本输出文件写入写入命令:
do fig=180,0,-1 write(jfil,'(i3.3,2x,f7.5,1x,f7.4,1x,2(1x,f9.4,1x,a3),2(2x,i3),2(1x,f9.4,1x,a3))') & fig,xc(fig),cc(fig),(Pcav(je),fcav(je),je=1,2),agav,agad,(Pcad(je),fcad(je),je=1,2) enddo
我需要在 Linux 上编译并 运行 它,但是当我在 windows 上阅读输出文件时,我遇到了端行字符兼容性问题。 这是我在 windows
上的记事本程序中所期望的177 0.99947 0.2519 9.5946 com 36.4488 exp 3 357 9.5882 asp 36.6517 sca 176 0.99905 0.3358 9.5988 com 36.2943 exp 4 356 9.5874 asp 36.6534 sca 175 0.99851 0.4197 9.6043 com 36.0974 exp 5 355 9.5865 asp 36.6557 sca 174 0.99786 0.5036 9.6110 com 35.8594 exp 6 354 9.5853 asp 36.6585 sca
这就是我得到的
177 0.99947 0.2519 9.5946 com 36.4488 exp 3 357 9.5882 asp 36.6517 sca 176 0.99905 0.3358 9.5988 com 36.2943 exp 4 356 9.5874 asp 36.6534 sca 175 0.99851 0.4197 9.6043 com 36.0974 exp 5 355 9.5865 asp 36.6557 sca 174 0.99786 0.5036 9.6110 com 35.8594 exp 6 354 9.5853 asp 36.6585 sca
它是相同的输出但没有换行符,全部在一行输出中
这是众所周知的 Linux 和 Windows 之间的兼容性问题:
linux使用“\n”和windows使用“\r\n”写新行
是否有 Gfortran 标志来修改输出以与 Windows 兼容? 还有其他方法可以解决这个问题吗?
Gfortran 和 Windows 上的其他几个 languages/runtimes 应该可以很好地读取您的文件,即使使用 Unix 行终止也是如此。您必须向我们提供您在 VBA 或其他地方阅读时实际遇到的错误的详细信息,否则我们无法告诉您如何避免它。
还有其他方法可以解决这个问题吗?
是的,您可以 运行 著名的 unix2dos 实用程序将数据文件转换为 DOS/Windows 格式。或者链接网页中提到的一些替代实用程序。