콘솔 화면에 DO 루프로 계산 작업의 진행 상황을 표시하고 싶습니다. 이 같은 단말로 진행 변수를 출력 할 수콘솔 화면의 현재 행을 덮어 쓰려면 PRINT 또는 WRITE 문을 어떻게 포맷합니까?
가PROGRAM TextOverWrite_WithLoop
IMPLICIT NONE
INTEGER :: Number, Maximum = 10
DO Number = 1, MAXIMUM
WRITE(*, 100, ADVANCE='NO') REAL(Number)/REAL(Maximum)*100
100 FORMAT(TL10, F10.2)
! Calcultations on Number
END DO
END PROGRAM TextOverWrite_WithLoop
콘솔 화면에 상기 코드의 출력은 :
10.00 20.00 30.00 40.00 50.00 60.00 70.00 80.00 90.00 100.00
모두 같은 줄에 있으며 콘솔 창으로 만 묶습니다.
ADVANCE = '없음' 인수와 TL10 (탭이 너무 많은 공간을 왼쪽) 편집 기술자, 예를 들어, 같은 줄에 텍스트를 덮어 잘 작동 다음 코드의 출력 :
WRITE(*, 100, ADVANCE='NO') 100, 500
100 FORMAT(I3, 1X, TL4, I3)
은 다음과 같습니다 대신
500
:
100 500
때문에 TL4 편집 기술자의.
이 두 인스턴스에서 WRITE 문은 다른 WRITE 문이나 DO- 루프와 같은 동일한 WRITE satement의 이전 실행에 의해 작성된 것을 덮어 쓸 수 없다고 결론을 내릴 수 있습니다.
어떻게 든이 문제를 해결할 수 있습니까?
Windows 7 RC1에서 FTN95 컴파일러를 사용하고 있습니다. (G95 컴파일러의 설치 프로그램은 Windows 7 RC1을 bluescreen으로조차도 Vista에서 잘 작동한다고 생각합니다.)
질문에 대한 대답은 Supressing line breaks in Fortran 95 write statements이지만이 질문에 대한 답변은 새로운 출력을 의미하므로 저에게 도움이되지 않습니다. 같은 줄의 이전 출력에 추가됩니다. 새 출력 대신 이전 출력을 덮어 씁니다.
미리 감사드립니다.
어떤 컴파일러와 OS를 사용하고 있습니까? – DigitalRoss
@ digitalross, compiler = FTN95, OS = Windows 7 RC1 – systemovich
아마도 대답을 받아 들여야합니까? –