[问题] 关于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