[問題] 關於BACKPACE的寫法請教

作者: 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行
作者: STi (努力變身中)   2014-09-05 13:07:00
請問terryys大,所以第8行指定的advance='no'在這邊沒有動作正確嗎? 這樣的狀態敘述應該是避免讀取位置自動換行才是
作者: terryys (terry)   2014-09-12 11:20:00
經過測試,不論advance是yes還是no,backspace都會回到同一行

Links booklink

Contact Us: admin [ a t ] ucptt.com