如何在Fortran中的字符变量中编写换行符?

时间:2014-01-22 09:51:15

标签: fortran runtime-error gfortran

我想在字符缓冲区变量buff中存储换行符。到目前为止,我的代码是这样的:

       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

1 个答案:

答案 0 :(得分:9)

您可以使用NEW_LINE内在函数来查询用于表示格式化流输出中的换行符的字符。将此字符发送到控制台时,通常会执行此操作。在格式规范中使用单独的字符数据描述符将其写出来可能是最容易的。

使用斜杠编辑描述符实际上是进入下一条记录的请求。对于内部文件(写入字符变量),这是下一个数组元素。在您的示例代码中,您将标量作为字符变量传递(因此只有一条记录),因此会出现文件结束条件。