gpt4 book ai didi

Fortran READ(*,*), WRITE(*,*) 参数

转载 作者:行者123 更新时间:2023-12-02 09:33:14 29 4
gpt4 key购买 nike

这个问题在之前的 SO 问题中已经有所涉及。然而,之前的讨论似乎有些不完整。

Fortran 有几个 I/O 语句。有 READ(*,*)WRITE(*,*) 等。第一个星号 (*) 是标准星号,表示键盘的输入或输出到/从屏幕。我的问题是关于第二个星号:

第二个星号表示 I/O 元素的格式,即正在使用的数据类型。如果这个星号保持不变,fortran 编译器将使用默认格式(无论是什么,取决于编译器)。用户必须使用许多格式描述符来指定数据类型、精度等。

(1) 这些格式描述符是否对所有 Fortran 编译器和所有版本的 Fortran 通用?

(2) 在哪里可以找到这些格式描述符的标准列表?例如,F8.3 表示应使用字段宽度为 8 和小数点后 3 位的定点表示法打印数字。

编辑:可在此处找到编辑描述符的引用:http://fortranwiki.org/fortran/show/Edit+descriptors

最佳答案

首先,作为澄清,READ/WRITE 语句中第一个星号的含义与您所说的略有不同。对于write,表示写入默认文件单元(linux世界一般是standard out),read表示从默认文件单元(linux世界一般是standard in)读取,两者都不一定要连接终端屏幕或键盘。

第二个星号表示使用列表定向 IO。对于读取语句,这通常很有用,因为您不需要为输入指定格式。它将行分成由空格或逗号分隔的字段(可能还有几个不常用的其他字段),然后依次将每个字段读入参数列表中与该字段关联的变量,忽略未读字段,然后继续如果没有读取足够的字段,则下一行(除非明确包含行终止字符 \)。

对于写入,这意味着允许编译器确定以何种格式写出变量(我相信没有分隔符)。我相信允许在运行时执行此操作,这样您几乎可以保证它尝试写入的值将适合所使用的格式说明符,因此您可以放心,您不会得到 * ****** 写出来了。不利的一面是您必须在参数列表中手动包含一个分隔符,否则所有数字将一起运行。

一般来说,使用列表定向读取对用户来说更方便,所以他们不必将他们的输入放入严格定义的字段中,而列表定向写入对程序员来说是一种方便,以防他们不确定输出会是什么样子。

关于Fortran READ(*,*), WRITE(*,*) 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30607829/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com