You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GnuCobol屏幕段使用Filler显示下划线,如何改为显示空格?

GnuCobol屏幕段显示空格的解决方法

在Windows 10环境下使用GnuCobol时,普通DISPLAY语句中的空格Filler能正常显示空格,但在SCREEN SECTION(屏幕段)中使用时,空格会被显示为下划线(_____),示例代码如下:

IDENTIFICATION DIVISION.
PROGRAM-ID. FillerExample.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 record-example.
    05 FILLER PIC X(5) VALUE "     ".
SCREEN SECTION.
01 DISPL-SCREEN AUTO.
    05 LINE 02 COLUMN 20 using record-example.
PROCEDURE DIVISION.
Display-Fillers.
    DISPLAY DISPL-SCREEN
    STOP RUN.

要在屏幕段中正常显示空格用于对齐表头和标签,可采用以下几种方法:

  • 添加NO-UNDERLINE子句:在屏幕段的字段定义中加入NO-UNDERLINE,禁用下划线显示,空格会正常输出:

    SCREEN SECTION.
    01 DISPL-SCREEN AUTO.
        05 LINE 02 COLUMN 20 USING record-example NO-UNDERLINE.
    
  • 指定OUTPUT模式:将字段设置为纯输出类型,默认的INPUT-OUTPUT模式会显示输入提示下划线,改为OUTPUT后即可正常显示空格:

    SCREEN SECTION.
    01 DISPL-SCREEN AUTO.
        05 LINE 02 COLUMN 20 OUTPUT USING record-example.
    
  • 直接在屏幕段定义空格:无需引用工作存储区的Filler,直接在屏幕段中定义空格字段:

    SCREEN SECTION.
    01 DISPL-SCREEN AUTO.
        05 LINE 02 COLUMN 20 PIC X(5) VALUE "     ".
    

原因说明

GnuCobol的SCREEN SECTION字段默认是INPUT-OUTPUT类型,这类字段为了提示用户输入位置,会将空格显示为下划线。通过上述方法修改字段属性或模式,即可覆盖默认行为,让空格正常显示。

内容的提问来源于stack exchange,提问作者reymagnus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 06:02:56