利用Fortran中文件的基本操作來讀取每行字符串中的數字內容,測試數據如下:
xxx2009
xx xxxx 2013
2014i love you 1
big2015more2016
ilove 2017 good 3
big2015more2018
運行結果爲:
2009
2013
20141
20152016
20173016
20152018
代碼如下:
Program main !讀取每行中的數字
implicit none
character(len=128) line
character(len=20) numstr
integer length,i,k,flag
open(10,file="data.txt")
open(11,file="transfor.txt")
flag=0
do while(.not.eof(10))
read(10,'(a)') line
length=len_trim(line)
k=0
do i=1,length
flag=ichar(line(i:i))
if((flag.le.ichar('9')).and.(flag.ge.ichar('0'))) then
k=k+1
numstr(k:k)=line(i:i)
endif
enddo
write(11,*) numstr
enddo
close(10)
close(11)
stop
end