file-io - 如何从普通lisp中的文件中读取两个整数
问题描述
(defun read-file (filename)
(with-open-file (stream filename)
(loop for line = (read-line stream nil)
while line
collect line)
)
)
我对 lisp 完全陌生,所以我想逐个整数地读取整数,但我有一行一行的代码。所以我找不到那个。
例如我的文件;
10 20
我需要帮助.thx
解决方案
不确定你到底在问什么,所以这里有一个简短的建议,将文件读入字符串,用空格分割,然后用 解析每个数字parse-integer
:
(mapcar #'parse-integer (str:words (uiop:read-file-string "foo.txt")))
uiop
来自 ASDF 并包含在所有主要实现中,str
是一个快速加载的库。
uiop 也有read-file-lines
。
推荐阅读
- c++ - C++ 中的自定义运算符重载,没有开销
- python - 重载(而不是压倒一切)是否违反了 Liskov 替换原则?
- mysql - mysql查询中多个连接中的where子句
- javascript - 当球变红时获得警报以及如何更改画布轮廓
- java - 如何在android中单击按钮显示可用的wifi网络?
- javascript - MomentJS 在满足特定条件时更改文本
- openvms - openvms 创建没有版本扩展名的文件(;1 等)
- c# - 在命名空间中找不到 System.Text.Json.JsonReaderException
- php - Laravel 5.8 并不总是更新新编写的代码
- spring-boot - 动态启动和关闭 KafkaListener 只是为了在会话开始时加载以前的消息