문제

Cobol의 Stdin (일명 Sysin)에서 선을 읽고 싶습니다. 지금은 내가 그것들을 가지고 있다는 것을 알도록 인쇄하고 싶습니다. 내가 읽고있는 모든 것에서는 이것이 작동해야합니다.

IDENTIFICATION DIVISION.
PROGRAM-ID. APP.

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.

    SELECT SYSIN ASSIGN TO DA-S-SYSIN ORGANIZATION LINE SEQUENTIAL.

DATA DIVISION.
FILE SECTION.

FD SYSIN.
01 ln PIC X(255).
    88 EOF VALUE HIGH-VALUES.
WORKING-STORAGE SECTION.

PROCEDURE DIVISION.
    OPEN INPUT SYSIN
    READ SYSIN
      AT END SET EOF TO TRUE
    END-READ
    PERFORM UNTIL EOF
        DISPLAY ln
        READ SYSIN
            AT END SET EOF TO TRUE
        END-READ
    END-PERFORM
    CLOSE SYSIN
    STOP RUN.

이는 컴파일 (Open -Cobol 및 Cobc -X 사용)을 사용하지만 실행하면 다음과 같습니다.

libcob: File does not exist (STATUS = 35) File : ''

내가 뭘 잘못하고 있죠?

도움이 되었습니까?

해결책

다음은 나에게 제안되었습니다 Opencobol 포럼.

SELECT SYSIN ASSIGN TO KEYBOARD ORGANIZATION LINE SEQUENTIAL.

작동하는 키워드 키보드입니다.

분명히 디스플레이는 stdout과 비슷한 단어이지만 테스트하지 않았습니다.

다른 팁

COBOL은 DPS-6 미니 컴퓨터 런 GCOS-6으로 거슬러 올라 갔으며 1992 년에도 계속 만졌습니다. 그러나 그 당시 우리는 수락을 사용하여 Stdin으로부터 입력을 얻었습니다.

수락 키워드를 사용하여 키보드 출력을 가져올 수 있습니다. 'end'와 같은 키워드를 칠 때까지 루프를 통과하거나 EOF의 16 진수 값을 사용할 수 있습니다 (1A, I Believe).

에서와 같이 :

1000-YOUR-PARAGRAPH.
  ACCEPT WS-YOUR-VARIABLE.
  DISPLAY WS-YOUR-VARIABLE.
  IF WS-YOUR-VARIABLE IS NOT EQUAL TO EOF
    THEN GO TO 1000-YOUR-PARAGRAPH
  ELSE GO TO 1090-EXIT
  END-IF.
1090-EXIT.
  EXIT.

그것은 EOL 마커까지 모든 것을 가져갈 것입니다 (예 : 반품).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top