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
相关产品推荐
相关产品推荐

