函式實現 檔案中行數確定的函式實現Fortran

2021-10-14 21:10:07 字數 2310 閱讀 2298

本文採用fortran語言,通過函式呼叫的形式,實現對指定檔案的行數統計。針對檔案中是否有空白行,均可以實現。

程式源**

program conunt_numimplicit none    integer,external::getfilenum,getfilenum_blank    integer::i    open(7,file='start1.txt')        i=getfilenum(7)        write(*,*) 'number of line without blankspace',i        i=getfilenum_blank(7)        write(*,*) 'number of line with blankspace',i    close(7)  stopend !--------------------檔案中有多少行資料-不統計空白行---------------------------------integer function getfilenum(ifileunit)   implicit none    logical,parameter::blssunrisefromeast=.true.   integer,intent(in)::ifileunit   character*(1)::cdummy   getfilenum=0   rewind(ifileunit)   do while(blssunrisefromeast)      read(ifileunit,*,end=999,err=999)cdummy      getfilenum=getfilenum+1   end do   999 rewind(ifileunit)   returnend function getfilenum!--------------------檔案中有多少行資料-統計空白行---------------------------------integer function getfilenum_blank(ifileunit)   implicit none    logical::alive=.true.   integer::status=0   integer,intent(in)::ifileunit   character*100::cdummy    logical,parameter::blssunrisefromeast=.true.   getfilenum_blank=0      do while(alive)          read(unit=ifileunit,fmt="(a100)",iostat=status)cdummy            !write(*,*) getfilenum_blank,status            if (status==0) then               getfilenum_blank=getfilenum_blank+1            else                exit            end if       end do      rewind(ifileunit)   returnend function getfilenum_blank
程式實現過程1.主程式定義

program conunt_numimplicit none......stopend
完成主程式定義,變數宣告以及函式宣告

對子函式呼叫

(i=getfilenum(7),i=getfilenum_blank(7))

通過引數傳遞進行計算

2.子函式定義

integer function getfilenum(ifileunit)......end function getfilenum
integer function getfilenum_blank(ifileunit)......end function getfilenum_blank
分別定義兩個子函式,區別在於是否統計空格行

3.執行結果

總結

1.程式比較簡單

2.子函式的宣告,注意宣告函式返回值的型別

此處兩個子函式宣告均為整型(integer)

3.read(..)語句中的子句,iostat

返回操作後的i/o狀態給status

0=成功(子函式2就是靠它做的判斷)

正數=讀取失敗

-1=檔案結束

-2=記錄結束

過載函式的過載確定過程

最近在找工作的過程中,發現很多平時沒有注意的問題,反省之後,決定好好把基礎知識過一過。過載函式的定義 出現在相同作用域中的兩個函式,如果具有相同的名字而形參表不同,則稱為過載函式。這裡有兩個地方需要注意 同乙個作用域,形參表不同。形參表不同的意思就是形參個數不同,或者引數型別不同。過載確定分三步 1...

AfxBeginThread 函式的用法例項講解

afxbeginthread 使用者介面執行緒和工作者執行緒都是由afxbeginthread建立的。現在,考察該函式 mfc提供了兩個過載版的afxbeginthread,乙個用於使用者介面執行緒,另乙個用於工作者執行緒,分別有如下的原型和過程 使用者介面執行緒的afxbeginthread 工作...

string h檔案中函式的詳細用法,附加例項

自以為身經百戰,突然發現好多基本常用的string.h中字串處理函式自己都不知道,用都沒用過,真是井底之蛙,會個strcmp strcpy就自以為是,沉下身心好好學學吧,唉!函式名 strcpy 功 能 拷貝乙個字串到另乙個 用 法 char strcpy char destin,char sour...