【发布时间】:2014-09-05 20:27:59
【问题描述】:
我在 FORTRAN 中有一个字符串数组作为“结果:CI-Energies --- th= 89 ph=120”。如何从字符串中提取字符“120”并存储到实变量中?
字符串写入文件'input.DAT'。我将 FORTRAN 代码编写为:
implicit real*8(a-h,o-z)
character(39) line
open(1,file='input.DAT',status='old')
read(1,'(A)') line,phi
write(*,'(A)') line
write(*,*)phi
end
执行时显示:
At line 5 of file string.f (unit = 1, file = 'input.dat')
Fortran runtime error: End of file
我给出了 '39' 作为字符数组的维度,因为字符串中有 39 个字符,包括 '空格' 直到 '120'。
【问题讨论】:
-
这段代码有几个问题。要修复此特定错误,请将
read(1,'(A)') line,phi替换为两行:read(1,'(A)') line和read(line(37:),'(F3.0)') phi。 -
您的问题表明您对 Fortran 编程比较陌生。不要学用隐式类型,学会用
implicit none。
标签: string io fortran gfortran