2014-01-22 3 views
5

내 문자 버퍼 변수 buff에 개행 문자를 저장하고 싶습니다. 지금까지 내 코드는 다음과 같이 진행됩니다어떻게 Fortran의 문자 변수에 개행 문자를 작성합니까?

 program TYPE_CHECK 

c newline storage in buffer 
     character(100), dimension(10) :: buff 
     integer, dimension(10) :: x 
     integer :: i 

     do i=1,10 
     x(i) = i 
     enddo 

     do j=1,10 
     write(buff(j), 1) x(j), x(j) 
1  format(' This is line ', I3, /, 
     *  ' This is newline ', I3) 
     enddo 

     do j=1,10 
     write(*, "(A100)") buff(j) 
     enddo 

     end program TYPE_CHECK 

이 다음과 같은 오류를 제공합니다 :

At line 13 of file myfoo6.F 
Fortran runtime error: End of file 

답변

9

당신은 포맷 스트림 출력에 줄 바꿈 표시에 사용하는 문자를 조회 할 NEW_LINE 고유 기능을 사용할 수 있습니다. 이 문자는 일반적으로 콘솔로 보낼 때 원하는 것을 수행합니다. 형식 지정에서 별도의 문자 데이터 설명자를 사용하여 작성하는 것이 가장 쉽습니다.

슬래시 편집 설명자를 사용하는 것은 실제로 다음 레코드로 진행하기위한 요청입니다. 내부 파일의 경우 (문자 변수에 쓰는 경우) 다음 배열 요소입니다. 예제 코드에서는 스칼라를 문자 변수로 전달하므로 (단 하나의 레코드 만) 파일 조건의 끝이 발생합니다.

+1

이전 포트란에서는 아스키 새줄로'char (10)'을 사용합니다. – agentp