2 для пользователей систем, созданных до введения Стандарта-83. Слово EXPECT в таких системах требует наличия нуля в конце вводимого текста. Поэтому при выполнении приведенного выше примера на вашей системе между именем и запятой может появиться пробел.
-TRAILING здесь воспринимает нуль как невыводимый на печать символ и при его выводе печатается пробел. Во избежание этого нужно ввести текст посредством EXPECT в рабочую область (PAD), после чего скопировать его, используя SPAN, в слово ИМЯ-ПОЛЬЗОВАТЕЛЯ с требуемым числом символов:
: ПОЛУЧЕНИЕ-ИМЕНИ ИМЯ-ПОЛЬЗОВАТЕЛЯ 40 BLANK PAD 40 EXPECT PAD ИМЯ-ПОЛЬЗОВАТЕЛЯ SPAN @ CMOVE ;
SPAN - пользовательская переменная, в которой содержится фактическое число символов, полученных словом EXPECT,
KEY |
( -- с) |
Занесение на стек значения в коде ASCII очередного доступного символа на текущем устройстве ввода. |
EXPECT |
( а u --) |
Ожидание и символов (или нажатий клавиши RETURN) с клавиатуры и запоминание их в участок памяти, начинающийся с адреса a и продолжавшийся сторону увеличения адресов. На нажатие клавиши ЗАБОЙ осуществляется возврат курсора. |
SPAN |
( -- a) |
Содержится количество символов, полученных, словом EXPECT |