Fortran Coder

查看: 64|回复: 2

[文件读写] 请教关于文件写入格式的问题

[复制链接]

2

帖子

1

主题

0

精华

新人

F 币
15 元
贡献
5 点
发表于 2022-9-19 21:47:08 | 显示全部楼层 |阅读模式
write(1,'(99(1pe14.6))',advance='no') time, dtime, EN, density(:)

请问大家!这句里的99(1pe14.6)每个部分代表什么意思,主要是 99 和 1p

71

帖子

0

主题

0

精华

专家

F 币
429 元
贡献
214 点

规矩勋章新人勋章元老勋章

QQ
发表于 2022-9-20 08:56:47 | 显示全部楼层
99() 意思是把括号里的格式符重复99次
1pe14.6 可视为  1p,e14.6
1p表示后面的输出放大一个数量级,如果后面是 f 编辑符,结果直接乘以 10^k。(k=1)
如果后面是 e d 格式符,则平移小数部分,平移量在指数部分补偿。
e14.6 就是输出一个工程计数法的小数,宽度是14,小数点后保留6个数字。

其实 1pe14.6 可以简短的写做  es14.6

如果理解还有困难,尝试运行以下代码:
[Fortran] 纯文本查看 复制代码
program fcodecn
  implicit none
  write(*,'(e14.6)') 33.0
  write(*,'(f14.6)') 33.0
  write(*,'(1p,e14.6)') 33.0
  write(*,'(es14.6)') 33.0
  write(*,'(1p,f14.6)') 33.0
  write(*,'(2p,e14.6)') 33.0
  write(*,'(2p,f14.6)') 33.0
  write(*,'(-1p,e14.6)') 33.0
  write(*,'(-1p,f14.6)') 33.0
end program fcodecn
彼岸,有永恒的守候...

2

帖子

1

主题

0

精华

新人

F 币
15 元
贡献
5 点
 楼主| 发表于 2022-9-20 09:30:02 | 显示全部楼层
青衣巷 发表于 2022-9-20 08:56
99() 意思是把括号里的格式符重复99次
1pe14.6 可视为  1p,e14.6
1p表示后面的输出放大一个数量级,如果后 ...

感谢感谢!
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2022-9-28 18:16

Powered by Tencent X3.4

© 2013-2022 Tencent

快速回复 返回顶部 返回列表