Cobol 有没有一种方法可以在获得用户输入后自动填充数组?

Cobol 有没有一种方法可以在获得用户输入后自动填充数组?,cobol,Cobol,我有一个由5个元素组成的数组,每个元素包含一个字符。我想在一行中接受用户输入。例如:ABCDE。我希望数组的元素1有A,数组的元素2有B,依此类推。有人能帮忙吗?我已附上以下代码的相关部分: environment division. input-output section. file-control. select standard-input assign to keyboard. select standard-output assign to display. dat

我有一个由5个元素组成的数组,每个元素包含一个字符。我想在一行中接受用户输入。例如:ABCDE。我希望数组的元素1有A,数组的元素2有B,依此类推。有人能帮忙吗?我已附上以下代码的相关部分:

environment division.
input-output section.
file-control.
    select standard-input assign to keyboard.
    select standard-output assign to display.

data division.
file section.
fd standard-input.
    01 stdin-record   pic x(80).
fd standard-output.
    01 stdout-record  pic x(80).

working-storage section.

    01  input-area.
        02 inputCharacters  pic x(1) occurs 5 times. 

    01  print-line.
        02 inputCharacters  pic x(1) occurs 5 times. 

procedure division.
    open input standard-input, output standard-output.

        read standard-input into input-area 
            at end
            close standard-input, standard-output
        end-read.

        write 
            stdout-record from print-line after advancing 5 line
        end-write

    stop run. 
对于您拥有的代码,您还可以执行以下操作:

    write 
        stdout-record from input-area after advancing 5 line
    end-write
如果您不需要一个表的两个副本,COBOL并没有像您可能习惯的那样真正拥有数组,那么就没有两个副本

如果您有两个表,我建议将项目名称更改。如果你不这样做,你就必须使用限定来使参考文献独一无二,从而使事情变得更加困难

MOVE inputCharacters ( 1 ) OF input-area 
                  TO inputCharacters ( 1 ) OF print-line
而不是

MOVE inputCharacters ( 1 )  
                  TO outputCharacters ( 1 )
如果您不介意自己进行资格认证,您可能会发现同事或未来的维护人员讨厌它

我不太确定你想用这个做什么:

    read standard-input into input-area 
        at end
        close standard-input, standard-output
    end-read.
你们只做一次读取,你们只会在并没有数据的情况下得到,不管这意味着什么。在这种情况下,您没有数据做任何事情

您应该了解如何为每个文件使用文件状态。在每次IO之后检查文件状态字段,我还建议使用文件状态字段进行文件结束检查,而不是在文件结束时进行繁琐的检查


然而,正如我所说,我不知道这对键盘意味着什么。。。因此,这可能不起作用:-

但是我是否读取了输入的全部5个字符,并将它们分别放到一个元素中?你知道这怎么可能吗?如果用户输入ABCDE,然后按Return,那么输入字符1应该是A,2应该是B,等等。如果他们输入了A,Return,B,Return等等,那么1号应该是A,其余的可能是空格。你不能自己试验并回答这个问题吗?
    read standard-input into input-area 
        at end
        close standard-input, standard-output
    end-read.