首页/文章/ 详情

Fortran基础编程(3)——格式化输出

1年前浏览564

本篇推文将进一步讲解Fortran基础语法中格式化输出声明部分,让我们的代码更加美观起来吧~

1      program main
2      integer a
3      a =100
4      write(*,100) a 
5      100 format (I4)
6      end

注意:
1.第五行有个100,表示行代码,也就是说第4行的write(*,100)执行的是第五行的内容。format(I4)是格式的意思,稍后会详细讲解;
2.自由格式中可以在行的最前面写行代码,固定格式写行代码时必须放在每一行的最前面5个字符文本框中;
3.尽量少用行代码,表示跳行,带来阅读不便。
Format命令可以使用很多格式控制描述,接下来木木带着大家温习一下比较常用的格式命令,遇到自己没见过的可以单独去网上查找,没必要全部记住。

Aw以w个字符宽度来输出字符串
Dw.d以w个字符宽来输出指数类型的浮点数,小数部分占d个字符宽
Ew.d[Ee]以w个字符宽来输出指数类型的浮点数,小数部分占d个字符宽,指数部分占e个字符宽
Fw.d以w个字符宽来输出浮点数,小数部分占d个字符宽
Gw.d以w个字符宽来输出任何类型的数据
Iw[.m]以w个字符宽来输出整数,最少输出m个数字
nX把输出的位置向右跳n个位置
/表示换行
kpk值控制输入输出的scale

接下来通过一个实例,展示一下格式化输出~

 1      program main
2      integer a
3      real b 
4      character(len=20) c
5      a 
10 
6      b = 12.34
7      c = "Fortran"
8      write(*,"(1X,I5)") a 
9      write(*,"(1X,F5.2)") b 
10      write(*,"(1X,A10)") c
11      end

结果如下:

1    10
2 12.34
3 Fortran   

注意:该程序用"()"代替format(), 可以减少代码的行数。

详论

“I F E A X”最为常用,熟悉即可,其他的遇到再上网查阅。
【Iw】
以w个字符的宽度来输出整数。

1write(*,"(I5)")     100
2··100

输出样式固定了5个字符大小,所以100前面会补上两个空白

1write(*,"(I3)")        10000
2***

设置输出文本框不足时,会出现*

1write(*,"(I5.3)")    10
2···010

固定使用5个字符字段,至少输出3个

【Fw.d】
以w个字符宽来输出浮点数,小数部分占d个字符宽

1write(*,"(9.3)")    123.45
2..123.450

不足9个字符部分会填上空白,小数不足3位会补0

【Ew.d】
以w个字符宽来输出指数类型的浮点数,小数部分占d个字符宽,指数部分占e个字符宽

1write(*,"(E15.7)")    123.45
2..0.1234500E+03

使用15个字符字段,小数部分占7位

1write(*,"(E9.2E3)")    12.34
2.0.12E002

设定输出9个字符宽度,小数占两位,指数部分占3位

【Aw】
以w个字符宽来输出字符串

1write(*,"(A10)")     "Hello"
2write(*,"(A3)")     "Hello"
3.....Hello
4Hel

【nX】
输出位置向右跳n位

1write(*,"(5X,I3)")     100
2.....100

【\】
换行输出

1write(*,"(I3\\I3)")        10,100
210
3
4
5100

【小技巧】

1      program main
2      real a b c 
3      a = 1.0
4      b = 2.0
5      c = 3.0
6      write(*,"(3(1XF5.2))") A B C 
7      end

输出结果如下:

11.00  2.00  3.00

代表连续重复输出1XF5.2三次

好啦,今天的分享就结束啦~我们下期再见咯

来源:易木木响叮当
二次开发控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-06-01
最近编辑:1年前
易木木响叮当
硕士 有限元爱好者
获赞 224粉丝 284文章 355课程 2
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈