gpt4 book ai didi

file-io - 在 Fortran 90 中从文件末尾读取

转载 作者:行者123 更新时间:2023-12-02 08:03:49 26 4
gpt4 key购买 nike

我的问题是如何从文本文件的末尾开始阅读。例如,

do
read(1,*) i
print *,i
end do

将读取文件 1 中的每一行,并将内容打印到终端。我如何从文件末尾开始执行此操作?

最佳答案

您可以通过在读取语句中使用inquireaccess=streampos 标记来实现您想要的。 10 分钟的快速练习给出以下结果。

program foo
implicit none
integer fd, i, j, m, n
character, allocatable :: s(:)
character :: c
open(newunit=fd,file='foo.f90',access='stream',status='old', &
position='append')
inquire(fd, pos=n)
allocate(s(n))
m = 1
do i = n-1, 1, -1
read(fd, pos=i) c
s(m:m) = c
if (iachar(c) == 10) then
do j = m, 1, -1
write(*,'(A1)',advance='no') s(j)
end do
m = 1
else
m = m + 1
end if
end do
write(*,*)
do j = m-1, 1, -1
write(*,'(A1)',advance='no') s(j)
end do
write(*,*)
close(fd)
end program foo

将其保存到名为 foo.f90 的文件中,编译并运行。这里有人可以让它更优雅。编辑原始版本:不需要为 s(j) 使用数组部分。

关于file-io - 在 Fortran 90 中从文件末尾读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53918906/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com