对文件的读写是编写程序的基础,也是常规编程中较为常用的功能,fortran中对文件的读写操作十分灵活,主要通过open,read,write实现,关于这两个函数的使用方法,以及参数的设定,彭国伦的书中介绍较为详细,不再赘述,现在我只陈述一下我常用到的关于文件的读写操作方法:
在对任何一个文件进行读写操作前首先要进行的便是将一个文件在计算机某个内存位置打开:
open(fid,file='path/example.txt',status='A',action='B',position='append')
在open中常用的几个参数就是上边几个:fid为打开的内存位置,file为文件的名字路径,status为文件状态可以为old,new,replace,action为要进行的操作,可为read,write,position='append'为写入时追加。
打开之后有
read(fid,'(A)',iostat=err,end=label)line 注意;end
后边是label,既为当文件读完之后要转到的命名行代码,这个结构很好用。
有时也可以read(fid,'(A)',iostat=err)
if(err/=0)exit
通过上边的结构也可以判断文件是否读完。
使用一次read只读取文件一行,
'(A)'为结构控制单元,既以什么形式读取,对于格式固定的文件,可以规定读取某一行的几列到第几列,如:read(line(5:15),'(A11)')char将这一行的第五列至第十五列读至char。但是读一格式不是很固定的文件,这样读取显得过于麻烦。这时可以使用read(line,*)a,b,c,d
不固定格式,这样就会以空格为分隔符,读取本行前四个相应的元素给a,b,c,d,当然a,b,c,d的变量类型需要提前声明好。这样就不用规定具体列数了,适用性更强。
write(fid,'(A)’)line将line变量写入文件fid,格式控制符:/即为换行符,既为不换行输出。
当对此文件操作完成后一般用close(fid)关闭,否则,如果在程序运行过程中在fid内存位置打开过多的文件,容易导致程序出错,而且如果对于一些过程文件,想用完销毁可以用close(fid,status='delete'),这样就不用调用系统命令去删除啦。