这是我的代码:
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文件中写入有什么问题?
发布于 2017-09-02 00:39:52
您正在寻找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-06https://stackoverflow.com/questions/46003175
复制相似问题