这是我自己写的:
(defun test (x)
(with-open-file (stream x :if-does-not-exist nil)
(let ((read-line-1 (read-line stream))
((read-line-2 (read-line stream)))
(format t "This is the test-1 ~s~%" read-line-1)
(format t "This is the test-2 ~s~%" read-line-2))))
我只想知道如何读取一个文件,谢谢
答案 0 :(得分:0)
您的代码中存在基本拼写错误,read-line-2
的绑定周围有一个额外的括号。您可能想要的是
(let ((read-line-1 (read-line-stream))
(read-line-2 (read-line-stream))) ...
如果您输入在编辑器中发布的代码,该代码会根据标准自动缩进Lisp代码,您将看到format
行实际上要求绑定名为format的变量。如果您尝试编译您发布的代码,您的编译器可能会抱怨(read-line-2 ...
不是符号。
如果您修复了额外的括号,问题的第二部分可能是参数x需要是“路径名指示符”,您可能没有为您的实现正确指定。
(test-2 #P"/home/user/fammmm/foo.txt")
可能就是你想要的。