我想从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/