在Visual Fortran上,利用fortran中的read将字符串中的数据赋值给各个对应的变量,结果出现NAN,而且还是中间的数据出现NAN string_line = '## 2145 172800.00000000 900.00000000 59261 0.000000000 ‘ 循环的时候,结果有时正常,有时b却为NAN 这种情况可能是由什么原因引起的啊?希望各位大神能指点一二 |
read(file_unit, *) var1
唐汉 发表于 2021-11-8 07:53
我猜你是有一个文件要读取,然后你把每一行读成字符串然后再把字符串读成变量?
或者是有很多文件,然后要 ...
program main
implicit none
character(len=:), allocatable :: string_line
integer :: a, c
real :: b, d
string_line = '## 2145 172800.00000000 900.00000000 59261 0.000000000 '
read (string_line, '(3x,i4,17x,f14.8,1x,i5,1x,f15.13)') a, b, c, d
print *, a, b, c, d
read (string_line, '(3x,i4,17x,f14.8,1x,i5,1x,f15.13)') a, b, c, d
print *, a, b, c, d
end program main
唐汉 发表于 2021-11-9 07:29
你可能要提供一个minimal bug report,我这边写了一个非常短的代码去尝试复现你的问题
[mw_shl_code=fortra ...
fcode 发表于 2021-11-9 08:44
read (string_line, '(3x,i4,17x,f14.8,1x,i5,1x,f15.13)') a, b, c, d
改为
character(len=1) :: x
律1234 发表于 2021-11-9 13:37
试过了,没用,四个数据,就第二个数据会出问题;整个大程序中还有另外一个地方也是读文件,出现同样的问 ...
律1234 发表于 2021-11-9 13:34
我也试过将这个字符串单独写出来,也都是正常的,主要是搁在我的一个大的整体程序下,就会出现以上问题, ...
欢迎光临 Fortran Coder (http://bbs.fcode.cn/) | Powered by Discuz! X3.2 |