2014-01-22 53 views
5

我想在我的字符緩衝區變量buff中存儲換行符。到目前爲止,我的代碼是這樣的:如何在Fortran的字符變量中編寫換行符?

 program TYPE_CHECK 

c newline storage in buffer 
     character(100), dimension(10) :: buff 
     integer, dimension(10) :: x 
     integer :: i 

     do i=1,10 
     x(i) = i 
     enddo 

     do j=1,10 
     write(buff(j), 1) x(j), x(j) 
1  format(' This is line ', I3, /, 
     *  ' This is newline ', I3) 
     enddo 

     do j=1,10 
     write(*, "(A100)") buff(j) 
     enddo 

     end program TYPE_CHECK 

這提供了以下錯誤:

At line 13 of file myfoo6.F 
Fortran runtime error: End of file 

回答

9

可以使用NEW_LINE內在函數來查詢用來表示格式的流輸出換行字符。這個角色通常會在您將其發送到控制檯時做到您想要的。在格式規範中使用單獨的字符數據描述符寫出它可能是最容易的。

使用斜線編輯描述符實際上是進入下一條記錄的請求。對於內部文件(寫入字符變量),這是下一個數組元素。在你的示例代碼中,你傳遞了一個標量作爲字符變量(因此只有一個記錄),因此會發生文件結束條件。

+1

在舊版Fortran中,您會使用'char(10)'作爲ascii換行符。 – agentp

相關問題