📅  最后修改于: 2023-12-03 15:15:11.102000             🧑  作者: Mango
Fortran 是一种面向科学计算的高级编程语言,其输入输出 (I/O) 功能是任何程序的核心功能。本文将介绍 Fortran 中的基本输入输出。
Fortran 的标准输入输出是在语言本身中内置的。我们可以使用 READ
语句来读取标准输入和 WRITE
语句来写入标准输出。下面是一个示例程序:
PROGRAM hello
CHARACTER(LEN=20) :: name
WRITE(*,*) "What is your name?"
READ(*,*) name
WRITE(*,*) "Hello, ", TRIM(name), "!"
END PROGRAM hello
以上代码将提示用户输入其名字,并输出问候语。*
是一个特殊的标志,它表示标准输入或输出。在此示例中,WRITE(*,*)
表示将文本输出到标准输出,而 READ(*,*)
表示从标准输入读取文本。
我们也可以使用 OPEN
语句打开文件,然后使用 READ
和 WRITE
语句读取或写入文件。下面是一个示例程序:
PROGRAM file_io
INTEGER :: i
REAL :: x
CHARACTER(LEN=20) :: filename
CHARACTER(LEN=10) :: mode
WRITE(*,*) "Enter file name and mode (e.g. 'data.txt' 'r')"
READ(*,*) filename, mode
OPEN(UNIT=10, FILE=filename, STATUS='OLD', ACTION=mode)
DO i = 1, 5
READ(10,*) x
WRITE(*,*) x**2
END DO
END PROGRAM file_io
以上代码将提示用户输入文件名和打开模式,然后将文件与单位号 10 相关联,并读取文件中的 5 个实数,对每个实数计算平方并将其写入标准输出。
此外,Fortran 还支持格式化输入输出,我们可以使用 FORMAT
语句来定义格式。下面是一个示例程序:
PROGRAM formatted_io
INTEGER :: i
REAL :: x
CHARACTER(LEN=20) :: filename
CHARACTER(LEN=10) :: mode
CHARACTER(LEN=20) :: format_str
format_str = "(2F8.2)"
WRITE(*,*) "Enter file name and mode (e.g. 'data.txt' 'r')"
READ(*,*) filename, mode
OPEN(UNIT=10, FILE=filename, STATUS='OLD', ACTION=mode)
DO i = 1, 5
READ(10,format_str) x
WRITE(*,format_str) x**2
END DO
END PROGRAM formatted_io
以上代码类似于示例程序 2 中的程序,但使用了格式化输入输出。在此示例中,我们使用一个字符串变量来存储格式,然后将格式用作 READ
和 WRITE
语句的参数。
Fortran 的输入输出功能非常强大,并且可以方便地使用标准输入输出或打开文件实现。我们还可以使用格式化输入输出来更好地控制输出格式。这些功能使 Fortran 可以轻松处理复杂的科学计算问题。