gpt4 book ai didi

fortran - 尝试在子例程中写入字符串导致错误

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

由于我的作业受到一些限制,所以使用了F77。我正在学习使用子例程,但在尝试写出字符串时遇到错误。

  PROGRAM test
IMPLICIT NONE
INTEGER a
CHARACTER*20 STR,str1
STR = 'Hello world'
a = 1
WRITE (*,*) a
WRITE (*,10) STR
CALL TEST(str1)
STOP
END

SUBROUTINE test(str2)
CHARACTER*20 str2
str2 = 'testing'
WRITE (*,10) STR2
RETURN
END

尝试编译此代码时,它返回“错误:缺少第 10 号语句”

此外,我还有一些其他问题:

  1. CHARACTER*20 STR 中的 *20 是什么意思?这是字符串的大小吗?

  2. WRITE (*,10) STR 中的 10 怎么样?这是要写入的字符串长度吗?

  3. WRITE (*,*) a 中(*,*) 的含义是什么

最佳答案

您可以在这里阅读示例: https://www.obliquity.com/computer/fortran/io.html

给 write 的第二个值是隐式格式关键字的参数,它是同一程序单元中语句的标签,包含完整格式规范的字符表达式或数组,或者表示列表定向的星号 *格式化。

因此,如果您直接提供数据,您可能需要使用 * 来代替。否则,您的程序需要在某行包含标签 10 和格式化语句。

是的,CHARACTER*20 STR 意味着变量 STR 的长度为 20,例如您可以在此处阅读:https://www.obliquity.com/computer/fortran/datatype.html

关于fortran - 尝试在子例程中写入字符串导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54496095/

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