Fortran 读取.txt文件并写入.txt文件
这是我的代码:Fortran 读取.txt文件并写入.txt文件,fortran,gfortran,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='Unkno
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
文件有什么问题?您正在查找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建议):
描述符中的字段太短(字符太少)。只需使用
(*,*)
或更多字符。周围有很多重复项,无法从我的手机中搜索。我想将En8.2格式的数字写入Outpu.txt
。使用(,)我得到了f描述符形式的数字
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