【问题标题】:Read lines in Fortran 77 and cast strings to numbers读取 Fortran 77 中的行并将字符串转换为数字
【发布时间】:2013-10-02 11:19:22
【问题描述】:

我有一个如下所示的文本文件:

7000
1.54
-0.32

我想做的是逐行读取文件,并将每个数字分配给一个数值变量。数字总是有 3 行,但我不知道数字的长度。它们可能是整数、浮点数、负数。我怎样才能做到这一点?

对于 Fortran 77。是的,我知道。但这不是我的使命。

【问题讨论】:

  • 如果你尝试过 f77 中最基本的 read 语句,我想你会发现它工作得很好。

标签: fortran fortran77


【解决方案1】:

这是为了读入你的文件:

integer :: i
real    :: a, b

open( file='filename.txt', unit=1234, status='old' )
read(1234,*) i
read(1234,*) a
read(1234,*) b
close(1234)

这是用于使用内部 I/O 将字符串转换为 real

character(len=10) :: str = '1.23e1'
real    :: a

read(str,*) a

【讨论】:

  • 如果输入文件包含一个整数后跟两个实数,这将可靠地工作。我将这个问题解释为输入文件的任何行中都可能出现实数或整数。
  • 那么我建议只阅读reals,如果需要,将它们四舍五入到integers。这只是一个例子......
  • 如果您需要辨别一个值是整数还是等于整数的浮点数(7000 与 7000)。它有点有趣,但我没有从问题中得到这个要求。跨度>
猜你喜欢
  • 2010-10-18
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 2014-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多