如何在 COBOL 中处理来自 JCL 的 SYSIN DD 的非格式化数值变量

Tom*_*gan 1 cobol jcl

我编写了一个非常简单的 COBOL 程序,该程序应该从 sysin dd * 获取数据并将其放入我的 WORKING-STORAGE 变量中,但它并没有按预期工作。

\n

问题是当我尝试将值 10 传递给 pic 9(10) 变量时,\n在 jcl 中编码如下:

\n
//SYSIN    DD  *\n10\n/*\n
Run Code Online (Sandbox Code Playgroud)\n

我得到 1000000000 而不是 0000000010。有没有一种简单的方法可以使其在不更改输入数据的情况下工作?

\n

提前致谢 :)

\n

Sim*_*sch 5

简单的方法是执行 a MOVE FUNCTION NUMVAL (ALPHANUMERIC-SYSIN) TO NUMERIC-VAR,可能随后检查结果是否不为零(这将是无效数据和空数据以及实际零的情况。
取决于编译器的版本(该信息是问题中缺少)您也许可以用来FUNCTION TEST-NUMVAL (ALPHANUMERIC-SYSIN)进行单独的验证 - 或者完全自己完成。