我正试图通过创建一个2d CHARACTER数组在Fortran77中打印一个图形。x值是恒定的(我的文件中的行数),我的y值将由用户输入。我将所有值初始化为空格,但我不确定如何用我的文件中的点填充2d数组(例如-1和100,2和200),以及如何提示用户输入高度。有什么想法吗?
代码:
SUBROUTINE PLOT(L,S)
INTEGER*8 L
C S = the variable that the user gives for y length, user defined (not sure how to do yet)
CHARACTER H(L,S)
C
C LOCAL VARIABLES
C
INTEGER I
DO 100 I=1, S
H(I,I) = ' '
100 CONTINUE
RETURN
END
我的数据文件:
1 100
2 200
3 300
4 400
5 500
以下是一些基本的读写:
读入一个名为data_in
的文件,其中N
行,每行包含变量x
、y
、z
:
open(unit=10,file='data_in',status='old')
do i=1,N
read(10,*) x(i), y(i), z(i)
end do
close(10)
将维度为N
的变量x
、y
、z
分别写入名为data_out
:的文件
open(unit=10,file='data_out',status='unknown')
do i=1,N
write(10,*) x(i), y(i), z(i)
end do
close(10)
将x
、y
和z
作为键盘输入(标准输入,*
),在手前询问用户:
do i=1,N
write(*,*) 'Please input element number ', i, ' of variables x, y and z, respectively'
read(*,*) x(i), y(i), z(i)
end do
在这三种情况下,read
和write
中的第一个选项都是输入/输出单元,要么用数字(我在打开带有该标识符的文件后使用了10
)表示,要么用星号*
表示,这表示"标准输入/输出",在这种情况下是终端提示。第二个选项,我在所有情况下都使用了星号*
,指的是格式。*
是"给定"的格式。