我正在尝试制作一个提示用户在 while
期间输入数字的功能(因此提示出现的次数会发生变化,这就是我不想使用的原因类似于 (interactive "n Enter a Number : ")
。我的代码是这样的:
(setq nb_str (read-string "Enter a Number:"))
(setq nb (string-to-number nb_str))
(insert nb)
当我想插入变量 nb
时,我没有插入我的数字,而是从 string-to-number
函数中得到了一些奇怪的输出,比如 ^ C
(如果我输入 3)或 ^D
(如果我输入 4)或 ^E
(如果我输入 5)。我需要那个值作为之后的数字。我该怎么做?
最佳答案
insert
插入字符串或字符,Emacs Lisp 中的数字是一个字符(如果它在正确的范围内),所以 3 作为第 3 个 ASCII 字符插入,^C
.
您需要将 nb-str
传递给 insert
,或者使用 number-to-string
:
(insert (number-to-string nb))
关于emacs - 字符串到数字和插入给出控制字符(例如 ^C、^D)而不是数字(例如 3、4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19920260/