2016-04-26 63 views
0

在一個簡單的測試例程中,我正在使用Fortran90編寫,字符串輸出比屏幕更長。使用標準寫入(,)語句時,輸出不是簡單地添加新行並繼續下一行,而是在繼續輸出之前添加第二個換行符。Fortran寫入插入2個換行符w

示例代碼:

write(*,*) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" 

英特爾Fortran的視覺作曲家XE 2013 SP1輸出:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 

這是爲什麼?這個額外的換行符來自哪裏?

回答

0

通過使用表式輸出,你在參數傳遞給write語句中的第二*做,你投降輸出格式到編譯器作者率性的精確控制。用特定的格式抓取回控制,如write(*,'(a128)')(用適合您要寫入的字符串長度的任何內容替換128)。看看會發生什麼。

您可能會開始學習如何將repeat函數用於重複字符串。

+0

這只是一個示例代碼來簡化問題,因爲例程的底層代碼對​​於問題的目的有點太複雜。 確實,這是問題所在。沒有人認爲列表導向的輸出可以做到這些奇怪的事情時,不受控制。我會確保在未來避免這種情況。 謝謝! – Odeul