首页 > 解决方案 > 如何从 Clojure 中的打印行末尾读取输入?

问题描述

(println "The number is: " (read-line))

(read-line)读取来自新行的输入。

如何从打印字符串的末尾而不是换行符读取?

就像在 C 中一样:

printf("The number is: ")
scanf("%d", &value)

标签: clojure

解决方案


如果您在(read-line)内部进行打印,它将首先执行(阻塞并等待用户输入,然后将打印“问题”和用户输入)。

而是使用do一个接一个地执行多个事情。要强制输出print(not println),请使用flush

(do
  (print "The number is: ")
  (flush)
  (read-line))
; The number is: 666
; => "666"

do返回最后一个结果。


推荐阅读