2
次の作業例の入力がist - たとえば "ach_40"の場合、出力は "ach_40.DOC?"です。と "ach_40.IMG"です。どこに "?"から来る?FORTRANの文字列操作:奇妙な振る舞い
コードは次のとおりです。
program test
character*8 filin
character*12 dummy,file1,file2
character*4 :: img = '.IMG', doc='.DOC'
integer*4 ls1, ls2, i
write(*,*) ' File (without extension): '
read(*,'(a8)') filin
c first file
dummy=filin // doc
ls1 = len_trim(dummy)
ls2=0
do i = 1,ls1
if(dummy(i:i).ne.' ') then
ls2=ls2+1
file1(ls2:ls2) = dummy(i:i)
endif
enddo
c second file
dummy=filin // img
ls1 = len_trim(dummy)
ls2=0
do i = 1,ls1
if(dummy(i:i).ne.' ') then
ls2=ls2+1
file2(ls2:ls2) = dummy(i:i)
endif
enddo
write(*,*) file1
write(*,*) file2
stop
end
おかげで、あなたのヒントのためにたくさん!
以下の点に留意してください。a)Fortranの固定長文字列は、常に同じ固定長を持ちます。 b)変数を定義していない場合は、値は定義されておらず、プログラムのロジックをサンプル入力とともに実行し、「 'file1'の最後の数文字の値は何になると思いますか? " – IanH