这个问题已经在以前的 SO 问题中有所涉及。然而,之前的讨论似乎有些不完整。
Fortran 有几个 I/O 语句。有READ(*,*)andWRITE(*,*)等。第一个星号 (*) 是标准星号,表示从键盘到屏幕的输入或输出。我的问题是关于第二个星号:
第二个星号指定 I/O 元素的格式,即正在使用的数据类型。如果此星号保持不变,则 fortran 编译器将使用默认格式(无论是什么格式,都取决于编译器)。用户必须使用许多格式描述符来指定数据类型、精度等。
(1) 这些格式描述符是否适用于所有 Fortran 编译器和所有版本的 Fortran?
(2) 在哪里可以找到这些格式描述符的标准列表?例如,F8.3表示数字应使用字段宽度为 8 和小数点后 3 位的定点表示法打印。
编辑:可以在此处找到编辑描述符的参考:http : //fortranwiki.org/fortran/show/Edit+descriptors
首先,作为澄清,READ/WRITE 语句中的第一个星号的含义与您所说的略有不同。对于write,就是写到默认的文件单元(在linux世界一般是标准的),对于read,就是从默认的文件单元(linux世界一般是标准的)中读取,两者都不一定连接到终端屏幕或键盘。
第二个星号表示使用列表定向 IO。对于 read 语句,这通常很有用,因为您不需要为输入指定指定格式。它将行分解为由空格或逗号分隔的字段(可能还有其他几个不常用的字段),然后将每个字段依次读取到参数列表中与该字段关联的变量中,忽略未读字段,然后继续如果读入的字段不足,则下一行(除非\明确包含行终止字符)。
对于写入,这意味着允许编译器确定将变量写出的格式(我相信没有分隔符)。我相信允许在运行时执行此操作,因此您几乎可以保证它尝试写入的值将适合所使用的格式说明符,因此您可以放心,您不会被*******写出。不利的一面是您必须在参数列表中手动包含一个分隔符,否则您的所有数字将一起运行。
一般来说,使用列表定向读取对用户来说更方便,因此他们不必将他们的输入放入严格定义的字段中,并且列表定向写入对程序员来说是一种方便,以防他们不确定什么输出看起来像。
| 归档时间: |
|
| 查看次数: |
5282 次 |
| 最近记录: |