2017-07-21 63 views
0

我有一个Fortran程序最初在Windows编译不兼容的,它得到纯输入文本文件,并生成纯文本输出文件写入的写命令:换行的Linux的Fortran输出与Windows

 

    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上读取输出文件时,我遇到了与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 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兼容? 有没有解决此问题的另一种方法?

+0

你有哪些问题?他们如何展示?你如何编写和阅读文件?我们需要查看执行I/O的代码。见[问]和[mcve]。 –

+0

我有34个不同的.f90文件我无法发布所有文件,这些文件是用“写入”命令编写的,我将编辑我的问题以便更具体地了解 – BugliL

+0

您仍然没有告诉使用**什么样的问题* * 你有。我们真的没有水晶球。告诉我们哪个读取命令导致问题并指定问题。 –

回答

1

Gfortran和Windows上的其他几种语言/运行时应该读取文件,即使使用Unix行终止也可以。您必须向我们提供在VBA或其他地方阅读时实际存在的错误的详细信息,否则我们无法告诉您如何避免它。

有没有解决此问题的另一种方法?

是的,您可以运行众所周知的unix2dos实用程序将数据文件转换为DOS/Windows格式。或者在链接网页中提到的一些替代实用程序。

+0

好吧,这是我的不好,我没有说清楚,我没有阅读Fortran的输出文件,但在其他语言(VBA,Python,C++,Java) – BugliL

+0

非常感谢您的实用程序,我没有' t知道 – BugliL

+0

downvote的任何理由?我应该改进什么? –