我有一个最初在Windows上编译的Fortran程序,它获取纯输入文本文件并生成纯输出文本文件write命令:
图=180,0,-1
写入(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))')&
图,xc(图),cc(图),(Pcav(je),fcav(je),je=1,2),agav,agad,(Pcad(je),fcad(je),je=1,2)
结束循环
我需要在Linux上编译和运行它,但是当我在windows上读取输出文件时,在endline char兼容性方面有问题。
这就是我对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实验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.6585sca公司
它是相同的输出,但没有换行符,是一行输出
这是众所周知的Linux和Windows之间的兼容性问题:
linux使用“\n”,windows使用“\r\n”来编写新行
是否有Gfortran标志来修改输出以与Windows兼容?
有没有其他方法来解决这个问题?
最佳答案
Gfortran和Windows上的其他几种语言/运行时应该可以很好地读取文件,即使使用Unix行结束符也是如此。你必须向我们提供你在VBA或其他地方阅读时的错误细节,否则我们无法告诉你如何避免它。
有没有其他方法来解决这个问题?
是的,您可以运行众所周知的unix2dos实用程序将数据文件转换为DOS/Windows格式。或者链接网页中提到的其他实用程序。