gpt4 book ai didi

FORTRAN 77 简单输入/输出

转载 作者:行者123 更新时间:2023-12-04 06:08:08 27 4
gpt4 key购买 nike

我是 FORTRAN 的新手,必须编写一个 FORTRAN 77 程序才能从文件重定向或标准输入中读取以下格式:

[CHARACTER] [REAL] [REAL] [REAL] ... (can have any number of these)
D [INTEGER] (only one of these)
[REAL] [REAL] [REAL] ... (can have any number of these)

示例输入可以是:
T 1.0 2.0 3.0
S 1.0 2.0 4.0
Y 3.0 4.0 5.0
D 2
3.0 5.0 6.0
4.5 4.6 5.6

我的母语是 C++,所以我对 read 语句自动转到下一行的整个想法很陌生。

到目前为止,我有以下代码:
c234567
character*1 D
character*1 LETTER
real X, Y, Z
integer lines
real point1, point2, point3



85 format (3F10.6)
100 format (A1, 5X, F10.6, 5X, F10.6, 4X, F10.6)
990 format (A, I10)



      MAX = 6
LETTER = 'Z'
D = 'D'

read *, LETTER, X, Y, Z

10 if(LETTER .ne. D) then
写 (6, 100) LETTER, X, Y, Z
读*、字母、X、Y、Z
转到 10
别的
转到 20
万一

C ================================================== ====
20 行 = aint(X)
写 (*,990) 'LINES:', 行
写 (6, 85) X, Y, Z
读*, Z
写 (6, 85) X, Y, Z
结束


正如你所看到的,我得到了输入的第一部分,但在那之后,由于 read 语句,一切都变得糊涂了:read*, Z go to next line。在我上面提供的特定输入文件中,我在 D 之后得到 2,以及接下来的两个值 (3.0, 5.0) 但我跳过了 6.0

任何帮助都会很棒。谢谢。

最佳答案

如果您知道您的行永远不会超过最大长度,我建议您阅读整行,然后根据您的规则解析该行。

使用最大行长度为 1024 个字符的示例:

       CHARACTER*1024 line
CHARACTER letter
100 FORMAT (A)
READ(*,100) line
READ(line, *) letter
IF (letter .eq. 'T') THEN
...
END IF

也许这种技术对你有用。

关于FORTRAN 77 简单输入/输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8105747/

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