- Fortran 教程
- Fortran - 主页
- Fortran - 概述
- Fortran - 环境设置
- Fortran - 基本语法
- Fortran - 数据类型
- Fortran - 变量
- Fortran - 常量
- Fortran - 运算符
- Fortran - 决策
- Fortran - 循环
- Fortran - 数字
- Fortran - 字符
- Fortran - 字符串
- Fortran - 数组
- Fortran - 动态数组
- Fortran - 派生数据类型
- Fortran - 指针
- Fortran - 基本输入输出
- Fortran - 文件输入输出
- Fortran - 过程
- Fortran - 模块
- Fortran - 内在函数
- Fortran - 数值精度
- Fortran - 程序库
- Fortran - 编程风格
- Fortran - 调试程序
- Fortran 资源
- Fortran - 快速指南
- Fortran - 有用的资源
- Fortran - 讨论
Fortran - 基本输入输出
到目前为止,我们已经看到,我们可以使用read *语句从键盘读取数据,并使用print *语句将输出显示到屏幕上。这种形式的输入输出是自由格式I/O,称为列表定向输入输出。
自由格式简单 I/O 的形式为 -
read(*,*) item1, item2, item3... print *, item1, item2, item3 write(*,*) item1, item2, item3...
然而,格式化的 I/O 为您提供了数据传输方面的更大灵活性。
格式化输入输出
格式化输入输出的语法如下 -
read fmt, variable_list print fmt, variable_list write fmt, variable_list
在哪里,
fmt 是格式规范
变量列表是要从键盘读取或在屏幕上写入的变量列表
格式规范定义了格式化数据的显示方式。它由一个字符串组成,其中包含括号中的编辑描述符列表。
编辑描述符指定显示字符和数字的确切格式,例如宽度、小数点后的数字等。
例如
Print "(f6.3)", pi
下表描述了描述符 -
描述符 | 描述 | 例子 |
---|---|---|
我 | 这用于整数输出。它采用“rIw.m”形式,其中 r、w 和 m 的含义如下表所示。整数值在它们的域中是右对齐的。如果字段宽度不足以容纳整数,则该字段将用星号填充。 |
打印“(3i5)”,i,j,k |
F | 这用于实数输出。它采用“rFw.d”形式,其中 r、w 和 d 的含义如下表所示。真正的价值在他们的领域是正确的。如果字段宽度不足以容纳实数,则该字段将填充星号。 |
打印“(f12.3)”,pi |
乙 | 这用于指数表示法的实数输出。“E”描述符语句采用“rEw.d”形式,其中 r、w 和 d 的含义如下表所示。真正的价值在他们的领域是正确的。如果字段宽度不足以容纳实数,则该字段将填充星号。 请注意,要打印具有三位小数的实数,需要至少十的字段宽度。一个用于尾数符号,两个用于零,四个用于尾数,两个用于指数本身。一般来说,w≥d+7。 |
print "(e10.3)",123456.0 给出 '0.123e+06' |
ES | 这用于实际输出(科学计数法)。它采用“rESw.d”形式,其中 r、w 和 d 的含义如下表所示。上述“E”描述符与传统的众所周知的“科学记数法”略有不同。科学计数法的尾数范围为 1.0 到 10.0,而 E 描述符的尾数范围为 0.1 到 1.0。真正的价值在他们的领域是正确的。如果字段宽度不足以容纳实数,则该字段将填充星号。同样,宽度字段必须满足表达式 w ≥ d + 7 |
print "(es10.3)",123456.0 给出 '1.235e+05' |
A | 这用于字符输出。它采用“rAw”形式,其中 r 和 w 的含义如下表所示。字符类型在其领域内是右对齐的。如果字段宽度不足以容纳字符串,则该字段将填充字符串的第一个“w”字符。 |
打印“(a10)”,str |
X | 这用于空间输出。它采用“nX”形式,其中“n”是所需空格的数量。 |
打印“(5x,a10)”,str |
/ | 斜杠描述符——用于插入空行。它采用“/”形式并强制下一个数据输出在新行上。 |
打印“(/,5x,a10)”,str |
以下符号与格式描述符一起使用 -
先生编号 | 符号及说明 |
---|---|
1 | C 列数 |
2 | d 实际输入或输出的小数点右侧的位数 |
3 | 米 显示的最小位数 |
4 | n 要跳过的空格数 |
5 | r 重复计数 – 使用一个描述符或一组描述符的次数 |
6 | w 字段宽度 – 用于输入或输出的字符数 |
实施例1
program printPi pi = 3.141592653589793238 Print "(f6.3)", pi Print "(f10.7)", pi Print "(f20.15)", pi Print "(e16.4)", pi/100 end program printPi
当上面的代码被编译并执行时,它会产生以下结果 -
3.142 3.1415927 3.141592741012573 0.3142E-01
实施例2
program printName implicit none character (len = 15) :: first_name print *,' Enter your first name.' print *,' Up to 20 characters, please' read *,first_name print "(1x,a)",first_name end program printName
当上面的代码被编译并执行时,会产生以下结果:(假设用户输入名称Zara)
Enter your first name. Up to 20 characters, please Zara
实施例3
program formattedPrint implicit none real :: c = 1.2786456e-9, d = 0.1234567e3 integer :: n = 300789, k = 45, i = 2 character (len=15) :: str="Tutorials Point" print "(i6)", k print "(i6.3)", k print "(3i10)", n, k, i print "(i10,i3,i5)", n, k, i print "(a15)",str print "(f12.3)", d print "(e12.4)", c print '(/,3x,"n = ",i6, 3x, "d = ",f7.4)', n, d end program formattedPrint
当上面的代码被编译并执行时,它会产生以下结果 -
45 045 300789 45 2 300789 45 2 Tutorials Point 123.457 0.1279E-08 n = 300789 d = *******
格式声明
格式语句允许您在一个语句中混合和匹配字符、整数和实数输出。以下示例演示了这一点 -
program productDetails implicit none character (len = 15) :: name integer :: id real :: weight name = 'Ardupilot' id = 1 weight = 0.08 print *,' The product details are' print 100 100 format (7x,'Name:', 7x, 'Id:', 1x, 'Weight:') print 200, name, id, weight 200 format(1x, a, 2x, i3, 2x, f5.2) end program productDetails
当上面的代码被编译并执行时,它会产生以下结果 -
The product details are Name: Id: Weight: Ardupilot 1 0.08