首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重复调用格式化忽略~t选项

重复调用格式化忽略~t选项
EN

Stack Overflow用户
提问于 2013-10-21 04:58:06
回答 1查看 56关注 0票数 1

我有这个:

代码语言:javascript
复制
(defun promptread (prompt) 
  (format *query-io* "~10t~a:" prompt)
  (force-output *query-io*)
  (read-line *query-io*))
(defun prompt-cd ()
    (make-cd
     (promptread "Artist")
     (promptread "Album")
     (promptread "Rating")
     (promptread "Like [y/n]")))

但是,~10t格式只会影响make-cd内部对promptread的第一次调用;其他调用在没有此填充的情况下左对齐。

为什么会这样?

REPL:

代码语言:javascript
复制
CL-USER> (addcds)
          Artist:Dixie
 Album:Funny
 Rating:22

第一个promptread是缩进的,因为format使用的是~10t,而不是其他的,后者使用的是相同的format调用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-21 06:09:38

问题是,在force-outputreadline之后,format不知道光标位于0位置。因此,绝对制表将失败。如果您使用~&启动格式字符串,您将看到这将作为一个额外的换行符无论如何输出。

要解决这个问题,请使用@修饰符获得相关的表格:

代码语言:javascript
复制
(format *query-io* "~10@t~a:" prompt)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19486540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档