我想将换行符存储在我的字符缓冲区变量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

最佳答案

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

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

关于fortran - 如何在Fortran的字符变量中写入换行符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21279422/

10-12 17:22
查看更多