从.txt文件读取并写入.txt文件

时间:2017-09-01 15:07:43

标签: fortran gfortran

这是我的代码:

Program Input_Output

Implicit none

Integer::i
Real::R_sn,X_sn,G_sn,B_sn

Open(Unit=2,File='Input.txt',Status='Unknown')

    Read(2,'(4(1x,En8.2))')R_sn,X_sn,G_sn,B_sn

Close(Unit=2,Status='Keep')

Open(Unit=4,File='Ouput.txt',Status='Unknown')

  Write(4,'(4(1x,En8.2))')R_sn,X_sn,G_sn,B_sn

Close(Unit=4,Status='Keep')

End Program Input_Output

文件Input.txt的内容为:

2.09E-01 1.17E-01 0.00E-00 1.16E-04

文件Output.txt的内容为:

******** ******** 0.00E+00 ********

我对此代码的意图是从文件中读取一些数字,并且我想将这些数字从用于阅读的文件中的形式写入其他文件中。 在Output.txt档案中写作有什么问题?

1 个答案:

答案 0 :(得分:3)

您正在寻找ES数据描述符,它以'科学记数法'编写输出。这意味着小数点前的单个前导数字。

write(*,"(4(1x,es8.2))" R_sn, X_sn, G_sn, B_sn
!! output: 2.09E-01 1.17E-01 0.00E+00 1.16E-04

另一方面,对于EN或“工程符号”,您在小数点前写入(最多)3个前导数字。所以你需要扩展输出字段(由@VladimirF建议):

write(*,"(4(1x,en10.2))" R_sn, X_sn, G_sn, B_sn
!! output: 209.00E-03 117.00E-03   0.00E+00 116.00E-06