Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran 读取.txt文件并写入.txt文件_Fortran_Gfortran - Fatal编程技术网

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