file - Prolog:获取与 at_end_of_stream 以检查文件结尾

标签 file prolog eof

我正在使用 prolog 读取文件,并想知道以下说法的区别:

processRead(Stream, ...) :- at_end_of_stream(Stream), !.

和:
processRead(Stream, ...) :- get(Stream, Ch), Ch is -1, !.

有没有?

最佳答案

第一件事!关注 @mat's advice !

你需要选择,
总是喜欢使用 at_end_of_stream/1 get/2 !

  • get/2已弃用。如果您有十年前的遗留代码,请迁移它。

    如果您的代码是新的,请永远不要使用它。绝不。一次都没有。
  • at_end_of_stream/1 定义标准。
  • 几乎每个现代 Prolog 处理器都支持 at_end_of_stream/1 -包括但不仅限于)
    GNU Prolog , SICStus Prolog , SWI Prolog , B-Prolog , 和 Eclipse CLP .
  • 关于file - Prolog:获取与 at_end_of_stream 以检查文件结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34812684/

    相关文章:

    java - 比较文件,然后删除字符较大的文件

    android - 安卓WIFI传输文件

    c# - 如果一个文件夹中有多个文件则抛出异常

    tree - 使用累加器的树的大小

    读取文本文件的 C 代码未找到 EOF(文件结尾)

    C# - 流/文件流 EOF

    c++ - 在 C++ 中覆盖文本文件

    list - 前言中的有效括号列表

    prolog - 如何检查序言中的两个顶点是否连接?

    c - 使用 fread 从 Matlab 读取所有字符到嵌入式设备