여러 파일을 열어 읽는 데 몇 가지 문제가 있습니다. 나는 같은 방식으로 포맷 된 n 개의 파일에서 두 개의 열을 읽는 코드를 작성해야한다. 이 전에 다른 결과 파일을 열고 결과를 작성합니다. 나는이 포럼 (such as this one)에 다른 질문을 읽고 같은 일을했지만, 나는이 오류가 나타납니다Fortran 90에서 여러 파일을 열고 읽는 방법
read(fileinp,'(I5)') i-49
1
devstan.f90:20.24:
fileLoop : do i = 50,52
2
Error: Variable 'i' at (1) cannot be redefined inside loop beginning at (2)
및
이read(fileinp,'(I5)') i-49
1
Error: Invalid character in name at (1)
내 파일이 1부터 n까지 번호가 명명됩니다 'lin * 27-n.dat'(n은 1부터 시작하는 인덱스 임) 코드는 다음과 같습니다.
program deviation
implicit none
character(len=15) :: filein,fileout,fileinp
integer :: row,i,h
real :: usv,usf,tsv,tsf,diff
write(*,'(2x,''Input file .......''/)')
read(*,'(a12)') filein
write(*,'(2x,''Output file........''/)')
read(*,'(a12)') fileout
open(unit = 30,File=filein)
open(unit = 20,File=fileout)
fileLoop : do i = 50,52
fileinp = 'lin*27-'
read(fileinp,'(I5)') i-49
open(unit = i,File=fileinp)
do row = 1,24
read(30,*) h,usv,tsv
read(i,*) h,usf,tsf
diff = usf - usv
write(20,*) diff
enddo
close(i)
enddo fileLoop
end program deviation
어떻게 해결할 수 있습니까? 나는 Fortran에서 프로 아니므로, 어려운 언어를 사용하지 마십시오. 감사합니다. 이 read
문이 오히려 쓰기보다 변수 fileinp
에서 읽기를 시도 :
감사합니다. francescalus하지만 입력 파일이 'lin * 27-1'인 경우 I5.5를 I1로 변경하면됩니까? 왜냐하면 런타임에이 오류가 나타납니다. devstan.f90 파일의 28 번째 줄 (단위는 50, 파일은 'lin * 27-00001') 포트란 런타임 오류 : 파일 끝 –
내 업데이트를 확인하십시오. – francescalus