Я новичок в 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</p>
<p>85 format (3F10.6)
100 format (A1, 5X, F10.6, 5X, F10.6, 4X, F10.6)
990 format (A, I10)</p>
<pre><code> MAX = 6
LETTER = 'Z'
D = 'D'
read *, LETTER, X, Y, Z
10 если (ПИСЬМО .ne. D), то напишите (6, 100) ПИСЬМО, 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 end
Как вы можете видеть, я получаю первую часть штрафа ввода, но после этого он вроде как переходит в кашу из-за оператора read: read*, Z идет к следующей строке.В моем конкретном входном файле, указанном выше, я получаю 2 после D и следующие два значения (3.0, 5.0), но я пропускаю 6.0
. Любая помощь будет отличной.Спасибо.