输入的数据未正确存储

Data entered not stored correctly

我对编程语言 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" 后,控制台不会发回消息 "Your Name: Albert"。控制台在 "Albert" 之后为空。 但是如果我把字符串名字的长度设置为6,因为我的名字是6个字符长,那么程序就可以正常运行,控制台显示"Your Name: Albert".

除此之外,with no advancing 子句无法正常工作。 当我使用此命令时,控制台不打印 "What is your Name?",它跳过该行,我必须先输入我的名字,输入我的名字后,控制台显示:"What is your Name?: Albert"。但在编译程序的 .exe 中,命令行 with no advancing 工作正常。

为什么会这样,我该如何修复?

您似乎使用嵌入式 python 控制台 OCIDE 以实现更好的集成。副作用是:它不是完整的功能,一旦你开始使用除了非常简单的 ACCEPT/DISPLAY 之外的任何东西,你应该禁用它:

首选项 (F2) -> 选项卡 运行 -> 检查 "Run in external terminal"

顺便说一句:OpenCOBOL windows 安装 IDE 附带了 GnuCOBOL 的最新官方 MinGW 包。目前是 1.1,但 very 很快就会成为 GnuCOBOL 2.0 rc2(或最终版本),我强烈建议使用这个而不是旧的 GnuCOBOL 1.1。您可以获得非官方 preview version with the rc1 and/or 敬请期待新版本(它也可能会添加到 OCIDE)。

编辑:如评论中所见:

The Problem was the old version of GnuCOBOL 1.1, because after updating it works correctly!