file - Prolog如何将文件保存在现有文件中

标签 file io prolog

添加新数据后如何保存现有文件

add_a_link(X,Y) :-
    tell('alink.txt'),
    write(X),
    write('.'),
    write(Y),
    write('.'),
    put(10),
    told,
    write('data written'),
    nl.

此代码仅重写文本文件。

最佳答案

使用 open/3和面向流的 I/O:

open(file, append, S), write(S, info(X,Y)), put_char(S,.), nl(S), close(S).

使用 tell/1told非常不可靠。很容易发生输出被意外写入另一个文件的情况。

编辑:这里有一个例子来说明 tell/1 极其不可靠的属性和 told .

说,你写tell(file), X > 3, write(biggervalue), told.只要 X > 3 就可以正常工作.但是使用较小的值,此查询失败并且没有写入任何内容。那可能是你的意图。但是,程序中其他地方的下一个输出现在将进入 file .这是你永远不想发生的事情。为此,ISO-Prolog 没有 tell/1told而是open/3close/1 .

关于file - Prolog如何将文件保存在现有文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8269971/

相关文章:

java - 在 Java 中使用 Stringbuilder 读取巨大的文本文件并追加

iOS 和管理器 : Can't read dowloaded file

c - Realloc和一个函数还是malloc和两个函数?

erlang - 如何清理 Erlang 输入?

prolog - 理解 Prolog 中的递归性

prolog - 最少移动次数

prolog - Between/3 不能递归吗?

java - 设计一个简单的文件管理器

java - 如何不覆盖文件(使用附加模式)

c# - 从文本文件读取到数据库表的有效方法