在Fortran中读取float时出错

use*_*052 2 fortran

这应该很简单,但我无法在Fortran中读取浮点数.我的程序test.f看起来像这样:

  PROGRAM TEST
  open(UNIT=1,FILE='test.inp')
  read(1,'(f3.0)')line

  STOP
  END
Run Code Online (Sandbox Code Playgroud)

输入文件test.inp只包含一个浮点数:1.2

现在编译我的testfile很好,但是当我运行它时我得到一个错误:

在test.f文件的第4行(unit = 1,file ='test.inp')

Fortran运行时错误:格式化传输中项目1的预期REAL,得到INTEGER

(F3.0)

^

我尝试了不同的代码修改,并搜索错误消息,但没有结果.任何帮助将不胜感激!

问候,弗兰克

Vla*_*r F 5

您的变量line隐式定义为整数.这不适用于f编辑描述符.如果要读取整数,请使用i编辑描述符(i3例如).否则声明line为数学"f"描述符是真实的.

注意旁边:.0不是问题,因为如果Fortran获得带小数点的数字,则忽略描述符中的.0部分.它仅在输入没有小数的数字时使用,然后使用desciptor中小数点后面的数字将小数点添加到正确的位置.对于F8.5,123456789被读为123.45678.更多内容请访问http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/fortran/lin/compiler_f/lref_for/source_files/pghredf.htm.