2015-12-03 69 views
0

我正在使用英特爾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的屬性裏面的幾個選項,但他們沒有做工作

任何有關於這一些想法?

+1

你能否檢查一下你是否真的有空行,而不是每行末尾空白(比如說76)? – francescalus

回答

1

這是(很有可能),因爲打印的字符串包括全部80個字符,即使是尾部空格(如註釋中所建議的那樣)。人們可以直接把字符串被打印在引號觀察此:

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

一個解決辦法是使用,例如,

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

這裏,ADJUSTL將消除也前導空格。如果這不可取,可以使用TRIM