输入的数据未正确存储

时间:2016-10-15 13:53:37

标签: cobol gnucobol

编译语言COBOL的编译器有问题。 我使用的程序" OpenCobolIDE" (GnuCOBOL 1.1 Mingw)。

首先,这是示例程序的代码。

   IDENTIFICATION DIVISION.
   PROGRAM-ID. HelloWorld.
   DATA DIVISION.
   FILE SECTION.
   WORKING-STORAGE SECTION.
   01  name           pic x(32).
   PROCEDURE DIVISION.
   beginn section.
        DISPLAY "What is your Name?: " with no advancing.
        accept name.
        DISPLAY "Your Name: ",name .
        STOP RUN.
   END PROGRAM HelloWorld.

输入我的姓名后," Albert",控制台没有发送消息"您的姓名:Albert"背部。控制台是在" Albert"空。 但是,如果我将字符串名称的长度设置为6,因为我的名字长度为6个字符,那么程序正常工作,控制台显示"你的名字:Albert"。

除此之外,with no advancing条款无法正常运作。 当我使用此命令时,控制台不会打印"你的名字是什么?",它会跳过该行,我必须先输入我的名字,输入我的名字后,控制台会显示:&# 34;你的名字是什么?:艾伯特"。但是在编译程序的.exe中,命令行with no advancing可以正常工作。

为什么会如此,以及如何修复它?

1 个答案:

答案 0 :(得分:3)

看起来你使用嵌入式python控制台OCIDE用于更好的集成。副作用是:它没有完全发挥作用,一旦你开始使用非常简单的ACCEPT / DISPLAY以外的任何东西,你应该禁用它:

偏好(F2) - >标签运行 - >检查"在外部终端中运行"

BTW:OpenCOBOL IDE的Windows安装附带最新的GnuCOBOL官方MinGW软件包。目前这是1.1,但非常很快将是GnuCOBOL 2.0 rc2(或最终),我强烈建议使用这一个而不是旧的GnuCOBOL 1.1。您可以获得非官方的preview version with the rc1和/或继续关注新版本(也可能会添加到OCIDE中)。

修改:如评论中所示:

  

问题是旧版本的GnuCOBOL 1.1,因为更新后它可以正常工作!