Cobol在不应将多行视为一行时将其视为一行
尝试编写cobol程序时,当使用opencobol编译时,它会将多行代码视为一行(必须使用opencobol,我听说GNU更好),并给出错误 代码是Cobol在不应将多行视为一行时将其视为一行,cobol,Cobol,尝试编写cobol程序时,当使用opencobol编译时,它会将多行代码视为一行(必须使用opencobol,我听说GNU更好),并给出错误 代码是 IDENTIFICATION DIVISION. PROGRAM-ID. InteractiveProcessing. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT INVE
IDENTIFICATION DIVISION.
PROGRAM-ID. InteractiveProcessing.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT INVENTORY-FILE
ASSIGN TO "C:\COBOL\INVENTORY-FILE.DAT"
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD INVENTORY-FILE.
01 FILE-OUTPUT.
05 PART-NO PIC X(5).
05 PART-DESC PIC X(15).
05 QTY-ON-HAND PIC 9(5).
05 UNIT-PRICE PIC 999V99.
WORKING-STORAGE SECTION.
01 MORE-DATA PIC X(3) VALUE 'YES'.
PROCEDURE DIVISION.
100-MAIN-MODULE.
OPEN OUTPUT INVENTORY-FILE
PERFORM UNTIL MORE-DATA = 'NO '
PERFORM 200-INVENTORY-MODULE
DISPLAY 'ENTER MORE DATA? (YES/NO)'
ACCEPT MORE-DATA
END-PERFORM
CLOSE INVENTORY-FILE
STOP RUN.
200-INVENTORY-MODULE.
DISPLAY 'ENTER PART NUM (5 CHARACTERS)'
ACCEPT PART-NO
DISPLAY 'ENTER PART DESCRIPTION (15 CHARACTERS)'
ACCEPT PART-DESC
DISPLAY 'ENTER QUANTITY ON HAND(INTEGER, UP TO 5 DIGITS)'
ACCEPT QTY-ON-HAND
DISPLAY 'ENTER UNIT PRICE (5 DIGITS, 2 AFTER DECIMAL)'
ACCEPT UNIT-PRICE
WRITE FILE-OUTPUT.
我不断听到的错误说明了这一点
'ENTER' undefined
及
出现错误的行是
DISPLAY 'ENTER QUANTITY ON HAND(INTEGER, UP TO 5 DIGITS)'
错误来自两行下面的ENTER和UNIT,我不明白为什么会发生这种情况。将该行的引号从单引号更改为双引号也会出现意外的文件结束错误。问题在于我使用tab对齐PIC子句。在另一个节目中也有同样的问题。解决方法是将制表符退格,然后使用空格键将子句放到正确的位置。最后看起来是一样的,但实际上是这样运行的。我只能在这里猜测,因为它编译得很好,例如在(使用GnuCOBOL 2.2),也许您有前导选项卡,并且超过了最大程序文本区域?我建议使用
-Wall
进行编译,并检查警告。在行和下一个显示上退格,不知何故工作正常。可能需要更多的实验来看看什么是有效的。我想你有标签在那里…你可能想自我回答你的问题并接受它。
DISPLAY 'ENTER QUANTITY ON HAND(INTEGER, UP TO 5 DIGITS)'