cobol - 输入的数据未正确存储

标签 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 advanced 不能正常工作。 当我使用此命令时,控制台不会打印“你的名字是什么?”,它会跳过该行,我必须先输入我的名字,输入我的名字后,控制台会显示:“你的名字是什么?:Albert”。但是在编译程序的 .exe 中,命令行没有前进可以正常工作。

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

最佳答案

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

首选项 (F2) -> Tab 运行 -> 勾选“在外部终端运行”

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

编辑:如评论中所见:

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

关于cobol - 输入的数据未正确存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40059876/

相关文章:

cobol - Cobol 文件状态 9 是什么意思?

programming-languages - 学习和使用 "old"语言 (Ada/Cobol/Algol)

cobol - 一个奇怪的错误 (COBOL)

cobol - gnucobol 海湾合作委员会 : error: `cob-config: No such file or directory

java - JZOS 批处理工具包 - 集成 JZOS Cobol 记录生成器

java - 是否存在一种在 COBOL 中标准化的 Java 互操作形式?

cobol - COBOL 中的数据类型

syntax-error - 为什么在识别部门出现错误?

rust - GnuCOBOL 调用 Rust : libcob: error: module not found

cobol - 什么时候在 COBOL 中使用点?