添加到输出文本文件的行

时间:2015-12-03 10:14:26

标签: visual-studio fortran fortran77 intel-fortran

我使用英特尔Fortran 2013在Visual Studio 2008上编译Fortran 77项目,我在可执行文件创建的输出文件中遇到了一个愚蠢的问题。 在这个文件中,我希望读到类似

的内容
EXPECT FILE :
"
foo1
foo2
"

相反,我获得了几乎相同,但中间有空行:

OBTAINED FILE:
"
foo1

foo2
"

这看起来像一个细节但实际上是一个问题,因为这个文件是由另一个没有检查空行的程序读取的。 奇怪的是,我也在Linux下编译了这个问题并没有出现,这就是为什么我认为它必然是Visual Studio选项问题。

源代码如下所示:

character*80 comment(2)

comment(1)="foo1"
comment(2)="foo2"

do i=1, 2
 write(10,*)comment(i)
end do

我尝试在Fortran Properties中更改了几个选项,但没有一个能够正常工作

有人对此有所了解吗?

1 个答案:

答案 0 :(得分:1)

这是(很可能)因为打印的字符串包括所有80个字符,即使是尾随空格(如评论中所示)。通过将字符串打印在引号中,可以直接观察到这一点:

WRITE(10, '(A)') "'"//comment(i)//"'"

一种解决方案是使用,例如,

WRITE(10, '(A)') TRIM(ADJUSTL(comment(i)))

此处,ADJUSTL会删除前导空格。如果这不合适,可以只使用TRIM