我对编程语言 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/