我在fortran中写了一些简单的输出,但我想要空白分隔符.但是,如果使用以下语句:
format(A20,ES18.8,A12,ES18.8)
Run Code Online (Sandbox Code Playgroud)
我得到这样的输出:
p001t0000 3.49141273E+01obsgp_oden 1.00000000E+00
Run Code Online (Sandbox Code Playgroud)
我更喜欢这个:
p001t0000 3.49141273E+01 obsgp_oden 1.00000000E+00
Run Code Online (Sandbox Code Playgroud)
我尝试使用负值宽度(如在Python中),但没有骰子.那么,有没有办法让数字左对齐?
提前谢谢了!
没有一种特别美丽的方式.但是,使用内部WRITE语句将数字转换为文本字符串(以前使用ENCODE语句完成),然后操作文本可能会满足您的需要.
引用http://rsusu1.rnd.runnet.ru/develop/fortran/prof77/node168.html
内部文件WRITE通常用于通过使用合适的格式规范将数值转换为字符串,例如:
Run Code Online (Sandbox Code Playgroud)CHARACTER*8 CVAL RVALUE = 98.6 WRITE(CVAL, '(SP, F7.2)') RVALUE
WRITE语句将使用字符'+98.60'填充字符变量CVAL(请注意,数字的每一端都有一个空白,第一个因为数字在7个字符的字段中右对齐,第二个因为记录被填充到声明的8个字符的长度).
一旦数字变成了一个字符串,它就可以按照第7节中描述的各种方式进一步处理.这使得例如可以在字段中写入左对齐的数字,......
Fortran 95 更容易做到这一点,但仍然不是微不足道的。使用 write 语句将数字或其他项目写入字符串(如第一个答案中所示)。然后使用 Fortran 95 内在的“ADJUSTL”左调整字符串的非空白字符。
归档时间: |
|
查看次数: |
9741 次 |
最近记录: |