作者:
STi (努力變身中)
2014-09-05 00:04:46板上各位高手好,
小弟目前實作時會用BACKSPACE這個功能,
但是在寫作上有些邏輯上的問題;
部分程式碼如下:
1 open(unit=13,file='tmp1.log',form='formatted',status='old',&
2 & access='sequential',position='append')
3
4 backspace(13)
5
6 do while(.true.)
7
8 read(13,'(a132)',iostat=error,advance='no')line
9
10 if(error/=0)then
11 write(*,*)'read input done!'
12 exit
13 end if
14
15 write(*,*)line
19
20 do loop2=1,2,1
21 backspace(13)
22 end do
23
24 end do
問題點在程式碼20~22行處,
我的想法是既然我已經把backspace寫在do while當中了,
每讀取一次應該就會把讀取位置倒回一行,
但是實際上卻是需要用到do...end do來包裝backspace,
否則程式只會不斷得給我讀取檔案中的最後一行。
請問是否我在寫作上的邏輯有問題?
先感謝大家的討論與建議,謝謝!
作者: terryys (terry) 2014-09-05 09:16:00
讀取一行後需要backspace兩次才能繼續讀取上一行,沒問題假設現在是在第i行,讀取完了會在第i+1行,要是只有一個backspace那就只是回到第i行而不是第i-1行