Cobol 有没有一种方法可以在获得用户输入后自动填充数组?
我有一个由5个元素组成的数组,每个元素包含一个字符。我想在一行中接受用户输入。例如:ABCDE。我希望数组的元素1有A,数组的元素2有B,依此类推。有人能帮忙吗?我已附上以下代码的相关部分: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
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.