无法读取文本文件。
READ: 输入流 #1=# 已经结束 [类型 SYSTEM::SIMPLE-END-OF-FILE 的条件]
什么意思是“已经到了尽头”。
最佳答案
查看 HyperSpec 上的文档:
http://www.lispworks.com/documentation/HyperSpec/Body/f_rd_rd.htm
默认情况下,READ
、READ-CHAR
和类似函数将在没有条件时发出 END-OF-FILE
类型的条件信号从流中读取更多数据。
如果您希望它在尝试读取流的末尾时返回特定值,则需要将 nil
传递给 eof-error-p
函数的参数,以及函数的 eof-value
参数的值、符号或关键字;这是到达文件/流末尾时您将返回的数据。
例如,如果您正在从一段文本中单独读取字符:
(with-open-file (s somefile :direction :input)
(do ((c (read-char s nil :eof)
(read-char s nil :eof)))
((eql c :eof) 'done)
(process-char c)))
关于lisp - 被普通 lisp 中的文件结束条件弄糊涂了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1904768/