2016-06-11 5 views
0

현재 코드를 실행 중이며 항상 같은 결과를 얻고 있습니다.포트란 런타임 오류 : 입력 데이터를 읽을 때 파일 끝

INTEGER :: m 
INTEGER :: st 

Open(Unit = 13,action='read',file='Data_Inp.dat',status='old') 
read (13,*, iostat = st) m 
write (*,*) st 
write (*,*) m 

ALLOCATE(winkel(m),energie(m)) 

Do i = 1,m 
    read(13,*),winkel(i),energie(i) 
End Do 

그리고 : 그들은 내 코드는 다음과 같습니다 그래서 지금은 iostat의 지정에 넣어 말했다 타 포스트에

Fortran runtime error: End of file

: I는 입력 파일을 읽기 위해 노력하고 있으며 오류를 반환 입력 파일은 다음과 같다 :

12 
-17.83 -0.019386527878 
-15.83 -0.020125057233 
-12.83 -0.020653853148 
-11.83 -0.020840036028 
-9.83 -0.020974157405 
-8.83 -0.021056401707 
-6.83 -0.021065517811 
-5.83 -0.020992571816 
-4.83 -0.020867828448 
-1.83 -0.02069158012 

이제 iostat의 단말기 및 m에 대한 끊임없이 변화하는 개수 -1을 출력한다.

+0

다른 어떤 게시물입니까? 일반적으로,'iostat'를 사용하는 것은 마술처럼 오류를 막지는 않습니다. 단지 런타임을 종료하는 대신 오류를 처리 할 수 ​​있습니다. – francescalus

+0

알겠습니다. 하지만 상상할 수 있습니까? 왜 EOF 오류가 발생합니까? 입력 파일에서 실수를 찾을 수 없습니다. 오류는 읽기 명령에 있어야합니다. – songwriter93

+0

이 파일이 실제 파일이 아니지만 예제 파일에 10 개의 데이터 항목 만 있지만 코드가 12 줄을 읽으려고하면이 파일이 끝나는 지 알 수 없습니다. 파일 오류. –

답변

0

첫 번째 읽기 명령에서 오류가 발생하는 경우 특히 입력 파일에서 "12"앞뒤에있는 불필요한 문자를 확인하십시오 (특히 Windows?) 다른 플랫폼에서 사용하는 경우 (Linux? Mac?)

+0

귀하의 답변은 코멘트와 같습니다. –

관련 문제