FPUT — 한 글자 스트림 출력
FPUT — 한 글자 스트림 출력
화면에 문자를 하나씩 연속으로 뿌리고 싶을 때가 있어요. 보통은 WRITE처럼 형식화된 출력을 쓰지만, 그런 레코드 단위 방식 대신 '한 글자씩 바로 내보내는' 저수준 출력이 필요할 수도 있는데요. FPUT는 그런 스트림 방식 출력을 제공해요.
시그니처
CALL FPUT(C [, STATUS])
STATUS = FPUT(C)
본문
설명(Description)
FPUT는 일반적인 형식화된 출력을 거치지 않고 스트림 방식으로 단일 문자를 표준 출력(stdout)에 씁니다. 같은 단위에서 스트림 I/O와 일반적인 레코드 중심 I/O(형식화되거나 형식화되지 않은)를 섞어 쓰면 결과가 예측 불가능해지니 주의해야 해요.
이 내장 함수는 서브루틴과 함수 두 형태로 제공되지만, 하나의 프로그램 단위 안에서는 둘 중 하나의 형태만 쓸 수 있어요.
참고로 FPUT 내장 함수는 g77과의 하위 호환성을 위해 제공돼요. GNU Fortran은 Fortran 2003의 스트림 기능을 제공하므로, 새 코드에서는 향후 이식성을 위해 새 스트림 I/O 기능을 쓰는 걸 고려해야 합니다. Fortran 2003 상태에 대한 자세한 내용은 관련 문서를 참고해요.
분류(Class)
서브루틴, 함수(Subroutine, function)
인자(Arguments)
C— 타입은CHARACTER이어야 하고 기본 kind여야 해요.STATUS— (선택)INTEGER타입의 상태 플래그예요. 성공 시0, 파일 끝(end-of-file)에서는-1, 그 외에는 시스템 특유의 양수 오류 코드를 반환해요.
예제
PROGRAM test_fput
CHARACTER(len=10) :: str = "gfortran"
INTEGER :: i
DO i = 1, len_trim(str)
CALL fput(str(i:i))
END DO
END PROGRAM
문자열 str의 문자 하나를 순서대로 꺼내 fput으로 출력하는 예시예요. 이렇게 하면 공백을 포함한 문자열이 그대로 화면에 이어 붙어 출력돼요.
표준(Standard)
GNU 확장(GNU extension)
더 알아보기
FPUTC — 스트림 방식 단일 문자 출력, FGET — stdin에서 스트림 방식 단일 문자 읽기, FGETC — 스트림 방식 단일 문자 읽기