经过大约几个小时的反复试验,我不知道该怎么做......这是我正在处理的代码:
: format
( n ds -- )
>r cr .s
dup cr .s
>r cr .s
abs cr .s
s>d cr .s
<# [char] bl hold #s r> sign #> cr .s
r@ cr .s
dup cr .s
c@ cr .s
dup >r cr .s
chars + cr .s
char+ cr .s
swap cr .s
dup cr .s
>r cr .s
cmove cr .s
r> r> + cr .s
r> cr .s
c!
;
顺便说一句......没有更简单的方法来打印输出,类似的东西printf
会很棒。另一种可能性是将空格字符指定为一种字符串的第一个字符s" "
。
编辑:
我发现我可以做到:s\" \040 test"
在 Gforth 中(尽管手册上说它不是标准的)。这s\" \x20 test"
可能是标准的,但我不太明白句子中表示它是否标准的部分在哪里相关。不过,我很高兴知道如何将它与图中的数字输出结合起来。
编辑2
这就是我希望它被使用的方式:
create test 256 allot
s" prefix " test place
123 test format
s" suffix" test place+
test count type \ prefix 123 suffix