Prolog阅读跳过线?

时间:2009-12-21 20:09:18

标签: prolog

我试图在gprolog中读取一个文件,但是我有一个小问题,它似乎读了一行,然后跳过一个,然后读下一个,等等......

继承我的代码:

readFichierEnt([],Fichier_Ent) :- read(end_of_file).
readFichierEnt(ExampleList,Fichier_Ent) :- read(X), write(X), readFichierEnt(ExampleList,Fichier_Ent).

如果我提供traintest.txt作为输入文件,我得到:

sdfasdf1dfas3fas5end_of_file

而文件是:

classes([unacc, acc, good, vgood]).
sdfasdf1.
asdfas2.
dfas3.
fas4.
fas5.
df6.

任何人都可以帮我吗? 感谢。

1 个答案:

答案 0 :(得分:1)

以下两点需要考虑:

  • read / 1在文件结束时失败。你不必检查它。
  • 更糟糕的是,您的read(end_of_file)读取一个术语,如果它不是谓词“end_of_file”则会失败。这是在您的示例中消耗每一秒的目标。