2015-06-07 235 views

回答

1

雖然不清楚,但我認爲,如果你只需要知道這些文件中的行數,只需使用wc -l <filename>在命令行

如果您想進一步做任何事情,只要讀取字符串的行數並計數,直到遇到文件結尾。這裏是以下代碼

character :: inputline*200 

OPEN(lin, file=inputfile, status='old', action='read', position='rewind') 

loop1: DO 
READ(lin,*,iostat=eastat) inputline 
IF (eastat < 0) THEN 
    numvalues = numvalues + 1 
WRITE(*,*) trim(inputfile), ' :number of records =', numvalues-1 
EXIT loop1 

ELSE IF (eastat > 0) THEN 
    STOP 'IO-error' 
ENDIF 
    numvalues = numvalues + 1 

END DO loop1 

希望有幫助!

+1

隨着Fortran的方法,你甚至不需要實際傳輸任何東西。 – francescalus

3
nlines = 0 
OPEN (1, file = 'file.txt') 
DO 
    READ (1,*, END=10) 
    nlines = nlines + 1 
END DO 
10 CLOSE (1) 

print*, nlines 

end 

P.S.我完全不同意這個問題「似乎不清楚,沒有表現出任何努力」。男人,你只是不知道你在說什麼。這個問題首先是非常明確的,其次它不必「表現出任何努力」 - 在這種情況下,這是一個愚蠢的要求,因爲通常的做法是詢問「如何在B語言中完成A」 - 無需付出任何努力。

OR:

nlines = 0 
OPEN (1, file = 'file.txt') 
DO 
    READ(1,*,iostat=io) 
    IF (io/=0) EXIT 
    nlines = nlines + 1 
END DO 
CLOSE (1) 

print*, nlines 
+0

您可能需要將'io'聲明爲整數。 – jsta