gpt4 book ai didi

cobol - Ubuntu GnuCobol CURRENCY SIGN IS "£"导致编译错误

转载 作者:行者123 更新时间:2023-12-04 18:18:58 24 4
gpt4 key购买 nike

在 Ubuntu 18.10 上使用 GnuCOBOL 2.2.0。
完成 Michael Coughlan 的“面向程序员的 COBOL 入门”。
GnuCOBOL 一直在编译本书的例子,直到第 9 章,这个程序:

IDENTIFICATION DIVISION.
PROGRAM-ID. Listing9-2.
AUTHOR. Michael Coughlan.

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
CURRENCY SIGN IS "£".
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Edit1 PIC £££,££9.99.

PROCEDURE DIVISION.
Begin.
MOVE 12345.95 TO Edit1
DISPLAY "Edit1 = " Edit1
STOP RUN.

...尝试编译时抛出以下错误:
~/Documents/COBOL$ cobc -x -free Listing9-2.cbl
Listing9-2.cbl: 8: error: PICTURE SYMBOL for CURRENCY must be one character long
Listing9-2.cbl: 11: error: invalid PICTURE character '�'
Listing9-2.cbl: 11: error: invalid PICTURE character '�'
Listing9-2.cbl: 11: error: invalid PICTURE character '�'
Listing9-2.cbl: 11: error: invalid PICTURE character '�'
Listing9-2.cbl: 11: error: invalid PICTURE character '�'
Listing9-2.cbl: 11: error: invalid PICTURE character '�'
Listing9-2.cbl: 11: error: invalid PICTURE character '�'
Listing9-2.cbl: 11: error: invalid PICTURE character '�'
Listing9-2.cbl: 11: error: invalid PICTURE character '�'
Listing9-2.cbl: 11: error: invalid PICTURE character '�'
Listing9-2.cbl: in paragraph 'Begin':
Listing9-2.cbl: 15: error: invalid MOVE statement

如果所有的 £ 字符都被 $ 替换,则编译成功。问题可能是 GnuCOBOL 不支持英镑符号吗?或者,是否必须以不同于仅按键盘上的“£”的方式输入它?

最佳答案

正如编译器所说:

PICTURE SYMBOL for CURRENCY must be one character long



所以 £在源文件中找到的不是一个长字符 - 我假设您使用了 UTF-8 编码,并且 GnuCOBOL 不直接支持任何多字节源编码(只要没有“大小溢出,您实际上就可以逃脱” “任何地方)。

如果可能,我建议将编码更改为 ISO-8859-15这是一种包含井号的单字节编码。

关于cobol - Ubuntu GnuCobol CURRENCY SIGN IS "£"导致编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54974226/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com