我创建了一个gfortran程序,它使用READ语句将字符串转换为实数。
问题: 当使用命令READ(行(54:67),*)从文件中读取字符串('1.00000E-03')时,程序将返回t:1.76617300510772955878279319145152225E-0003。这是一个错误的转换。
但是当我写READ('1.00000E-03',*)t时,程序返回1.00000000000366461737654319145152225E-0003。没关系。
有人认出这种失败吗?谁能帮帮我?
答案 0 :(得分:0)
约翰,
你必须阅读 AS 真实。 做这样的事情(因为你没有显示类型声明):
Program so
Implicit None
character(8)::fchar
real(kind=4):: rnum
write(20,'(a6)') "1.2345"
close(20)
open(22,file='fort.20')
!fchar=line(54:67)
read(22,'(f8.4)') rnum
close(22)
write(*,'(f8.4)')rnum
End Program so
希望这会有所帮助。