chap06/sample6.f90

サンプルコードのダウンロード

 1program sample
 2  implicit none
 3
 4  integer, parameter :: max_line = 256
 5  integer :: ios, nline
 6  character(max_line) :: line
 7
 8  nline = 0
 9
10  !
11  ! fmt='(a)'  : 行末までを読み込むのに必要(途中のスペースで途切れないように)
12  ! iostat=ios : ステータスがiosに代入される
13  !
14  read(*, fmt='(a)', iostat=ios) line
15
16  !
17  ! ios >  0 : 何らかのエラー
18  ! ios == 0 : 正常に読み込まれた
19  ! ios <  0 : ファイルの終端に達した
20  !
21  do while(ios == 0)
22    ! 空白行以外をカウント(line == '' なら空白行である)
23    if(line /= '') then
24      nline = nline + 1
25    endif
26    ! 次の行を読み込む
27    read(*, fmt='(a)', iostat=ios) line
28  enddo
29
30  write(*, *) 'Number of lines (without brank) : ', nline
31
32  stop
33endprogram sample