在COBOL中读取STDIN(SYSIN)

sin*_*yma 8 select 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.
Run Code Online (Sandbox Code Playgroud)

编译(使用open-cobol和cobc -x),但运行它我得到:

libcob: File does not exist (STATUS = 35) File : ''
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Pau*_*ell 5

我的 COBOL 可以追溯到运行 GCOS-6 的 DPS-6 小型机,我最后一次接触它是在 1992 年。但那时我们使用 ACCEPT 从标准输入获取输入。


sin*_*yma 5

OpenCOBOL论坛上向我建议了以下内容.

SELECT SYSIN ASSIGN TO KEYBOARD ORGANIZATION LINE SEQUENTIAL.
Run Code Online (Sandbox Code Playgroud)

它是关键字KEYBOARD使它工作.

显然,DISPLAY对于STDOUT来说是一个类似的词,但我没有测试过.