返回介绍

7.1.1 输入输出语句

发布于 2025-03-08 16:28:37 字数 2756 浏览 0 评论 0 收藏 0

a) 相关语句

输入输出语句决定了作用在数据上的 I/O 操作。

数据传输语句有:READ,ACCEPT,WRITE,PRINT 和 REWRITE。文件连接、查询和定位语句有:BACKSPACE,CLOSE,DELETE,ENDFILE,INQUIRE,OPEN,REWIND 和 UNLOCK。下表给出了它们的简要描述。另外,内在函数 EOF 可以用来判断在文件当前位置之后是否还有剩余数据。

语句

功能

ACCEPT

输入数据,和格式化顺序 READ 语句类似

BACKSPACE

定位到文件上一个记录开始处

CLOSE

断开和一个单元(文件和设备) 的连接

DELETE

从相关文件中删去一条记录

ENDFILE

写一个文件结束记录

INQUIRE

返回一个单元或外部文件的属性

OPEN

使一个单元号和一个文件或设备相连接

PRINT

向星号单元(屏幕) 输出数据

READ

从一个文件向 I/O 列表中的项目输入数据

REWIND

重新定位于文件的开头

REWRITE

覆盖当前记录

UNLOCK

释放先前被 READ 语句锁定的相关或顺序文件中的一个记录

WRITE

从一个 I/O 列表中的项目向文件输出数据

一个记录是一个数字或字符的序列。有三种记录形式,即格式化记录、非格式化记录和文件结束记录。一条格式化记录的数据需要进行内部和外部形式间的转化,格式化 I/O 语句有确切的格式说明符或名称列表,只有格式化 I/O 语句才能读写格式化记录。非格式化记录保持其内部形式,而内部形式依赖于处理器。只有非格式化 I/O 语句才能读写非格式化记录。文件结束记录是文件的最后一个记录,可以在顺序文件中用 ENDFILE 语句写出一个文件结束记录。

b) WRITE 语句

用于输出的 WRITE 语句的一般形式为:

WRITE({[UNIT=]单元|*}[,{[FMT=]格式说明符|[NML=]名称列表组名|*}][,REC=记录号][,IOSTAT=状态变量名][,ERR=错误标号]) [I/O 列表]

上面一般形式中的各项不是同时具有的,根据文件的属性(外部文件(顺序文件(格式化、格式化直接列表、格式化名称列表、非格式化) 和直接文件(格式化、非格式化)) 和内部文件) 不同而择其项。如果省略 UNIT=,则第一个参数必须是“单元”。如果省略了 FMT=或 NML=,则格式说明符或名称列表组名必须是第二个参数(格式化文件)。其后的几项参数次序可以任意。

单元:外部文件时是一个指定设备号的整型表达式,内部文件时是一个字符串、变量、数组、数组元素或非字符数组。

格式说明符:对于格式写操作是必需的,非格式写操作时不能有。

名称列表组名:如果它被说明,则 I/O 列表必须省略。

错误标号:在同一个程序单位中的一个可执行语句的标号。如果指定了它,I/O 错误将把控制传递给此标号处的语句,省略时取决于状态变量名的存在与否。

状态变量名:一个整型变量、数组元素。当无错误时,它返回值为 0,有错误时则返回错误信息号。

记录号:一个整数表达式指定要被写的记录序号,仅用于直接文件。文件中的第一条记录的记录号为 1,缺省值为文件中的当前位置。

c) PRINT 和 TYPE 语句

PRINT 语句向屏幕输出,TYPE 语句是 PRINT 语句的别名,其规则是:PRINT {*|格式}[,I/O 列表]和 PRINT 名称列表。

例:下面的语句是等价的:

PRINT '(A11)', 'Abbottsford'

WRITE (*, '(A11)') 'Abbottsford'

TYPE '(A11)', 'Abbottsford'

例:一个输出的趣例。 [e_711_01.f90]

d) READ 语句

用于输入的 READ 语句的一般形式为:

READ({[UNIT=]单元|*}[,{[FMT=]格式说明符|[NML=]名称列表组名|*}] [,REC=记录号][,IOSTAT=状态变量名][,ERR=错误标号][,END=文件结束标号][,EOR=记录结束标号]) [I/O 列表]

文件结束标号:读到文件结束记录时把控制传递给标号处的语句。

记录结束标号:读完一个记录时把控制传递给标号处的语句。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文