unexpected ADDRESS, expecting OMITTED or Identifier
时间: 2024-01-18 21:02:22 浏览: 27
抱歉,出现了这个问题可能是因为在 COBOL 中,`ADDRESS` 是一个保留关键字,不能用作标识符。在上面的 COBOL 程序中,`ADDRESS` 被用作了记录 `MY-RECORD` 中的一个字段名,从而导致了编译错误。
为了解决这个问题,您可以将 `ADDRESS` 改为一个不同的字段名,例如 `MY-ADDRESS`。同时,您还需要在程序中相应地修改该字段的相关引用。
下面是修改后的代码示例:
```
IDENTIFICATION DIVISION.
PROGRAM-ID. WRITE-FILE.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT MY-FILE ASSIGN TO 'MYFILE.DAT'
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD MY-FILE
RECORDING MODE IS F.
01 MY-RECORD.
05 NAME PIC X(20).
05 AGE PIC 99.
05 MY-ADDRESS PIC X(50).
WORKING-STORAGE SECTION.
01 EOF-SWITCH PIC X(3) VALUE 'NO '.
PROCEDURE DIVISION.
MAIN-LOGIC.
OPEN OUTPUT MY-FILE.
PERFORM UNTIL EOF-SWITCH = 'YES'
DISPLAY 'Enter Name:'.
ACCEPT NAME.
IF NAME = 'END'
MOVE 'YES' TO EOF-SWITCH
ELSE
DISPLAY 'Enter Age:'.
ACCEPT AGE.
DISPLAY 'Enter Address:'.
ACCEPT MY-ADDRESS.
MOVE NAME TO MY-RECORD.
MOVE AGE TO MY-RECORD.
MOVE MY-ADDRESS TO MY-RECORD.
WRITE MY-RECORD.
END-IF
END-PERFORM.
CLOSE MY-FILE.
STOP RUN.
```
在上面的代码中,我们将记录 `MY-RECORD` 中的 `ADDRESS` 字段改名为 `MY-ADDRESS`,并相应地修改了 `ACCEPT` 和 `MOVE` 语句中的字段名。这样就可以避免使用保留关键字 `ADDRESS` 导致的编译错误了。