Ste*_*ini 16
1是文件句柄,您必须使用正确的打开调用打开它.82是引用格式的标签,表示如何根据可视格式报告数据.
program foo
implicit none
integer :: i
double precision :: a
write (*,*) 'give me an integer and a float'
read (*,82) i,a
write (*,82) i,a
82 format (I4, F8.3)
end program
Run Code Online (Sandbox Code Playgroud)
在此示例中,程序接受标准输入(其单元号未指定,因此我将*)设置为整数和浮点值.格式说整数占据前四列,然后我有一个浮点数,它保持在8列,小数点后面有3位数
如果我现在运行该程序,并且我没有完全遵循这种格式,程序将抱怨并崩溃,因为前4列预计代表一个整数(由于I4格式)和"5 3".不是有效的整数
$ ./a.out
give me an integer and a float
5 3.5
At line 7 of file test.f (Unit 5)
Traceback: not available, compile with -ftrace=frame or -ftrace=full
Fortran runtime error: Bad value during integer read
Run Code Online (Sandbox Code Playgroud)
但是,正确的规格(请注意数字5之前的三个空格)将执行正确的操作(稍微公差,不是那么严格)
$ ./a.out
give me an integer and a float
5 3.5
5 3.500
$
Run Code Online (Sandbox Code Playgroud)
它根据标签82处的FORMAT语句从"单元"(打开的文件)编号1读取.但是由于该语句没有列出任何变量,因此它无法放置它正在读取的数据,这不太可能有所帮助; READ(1,82) FOOBAR将更有用的数据放在变量FOOBAR中.