Примерно через несколько часов проб и ошибок, я не мог понять, как это сделать ... Вот код, я работаю над:Добавить буквальный пробел в изображенном цифровой выход
: 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
[email protected] cr .s
dup cr .s
[email protected] 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" "
.
EDIT:
я обнаружил, что я могу сделать: s\" \040 test"
в Gforth (хотя руководство говорит, что это не стандарт). И s\" \x20 test"
, который, вероятно, является стандартным, но я не совсем понимаю, где часть предложения, которая говорит, является ли она стандартной или нет. Тем не менее, я был бы рад узнать, как объединить его с изображением на фото.
EDIT2
Это, как я бы ожидать, что она будет использоваться:
create test 256 allot
s" prefix " test place
123 test format
s" suffix" test place+
test count type \ prefix 123 suffix
Это не очень понятно, что ваш код пытается достичь, поэтому я не знаю, как помочь. Не могли бы вы либо объяснить свое намерение, либо прокомментировать код? Предпочтительно оба. – sheepez
@sheepez Я пытаюсь получить слово, я бы назвал число и указатель на строку, выделенную на кучу, а затем напечатал бы это число в данной строке после последнего символа в ней, длина для учета количества добавленных символов. Часть, которую я не могу сделать, - это часть, где я хочу добавить символ пробела после номера, напечатанного в строке.Я также добавил код к вопросу, чтобы проиллюстрировать его использование. –
С какой проблемой или ошибкой вы сталкиваетесь? Выполняется ли 'format' и просто не выполняется то, что вы ожидали? – sheepez