我想从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 forums上向我提出了以下建议。

SELECT SYSIN ASSIGN TO KEYBOARD ORGANIZATION LINE SEQUENTIAL.

使它起作用的是关键字KEYBOARD。

显然,DISPLAY与STDOUT相似,但我尚未对此进行测试。

关于select - 在COBOL中读取STDIN(SYSIN),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/938760/

10-10 02:08