我有一个包含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.
答案 0 :(得分:0)
MOVE input-area TO print-line
对于您拥有的代码,您也可以这样做:
write
stdout-record from input-area after advancing 5 line
end-write
如果你不需要两张桌子副本(COBOL没有真正拥有"阵列"就像你可能习惯的那样)那么就不要这样做了。有两份。
如果您有两张桌子,我建议您将项目名称设置为不同。如果你不这样做,你就必须使用" qualancy"使参考文献独一无二。
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.
你只做一个read
,你只有在没有数据时才会得到at end
(无论keyboard
是什么意思)。在这种情况下,您没有数据可以执行任何操作。
您应该了解如何为每个文件使用FILE STATUS。每次IO后检查文件状态字段,我还建议使用文件状态字段进行文件结束检查,而不是繁琐的AT END。
然而,正如我所说,我不知道键盘的含义......所以也许这不会起作用: - )