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)
我究竟做错了什么?
在OpenCOBOL论坛上向我建议了以下内容.
SELECT SYSIN ASSIGN TO KEYBOARD ORGANIZATION LINE SEQUENTIAL.
Run Code Online (Sandbox Code Playgroud)
它是关键字KEYBOARD使它工作.
显然,DISPLAY对于STDOUT来说是一个类似的词,但我没有测试过.