COBOL에서 Stdin (Sysin)을 읽으십시오
문제
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 마커까지 모든 것을 가져갈 것입니다 (예 : 반품).
제휴하지 않습니다 StackOverflow