Пролог читает пропускает строки? - PullRequest
0 голосов
/ 21 декабря 2009

Я пытаюсь прочитать файл в 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 Ответ

1 голос
/ 22 декабря 2009

Вот две вещи для рассмотрения:

  • read / 1 просто не удается, когда достигнут конец файла. Вам не нужно проверять это.
  • Что еще хуже, ваше чтение (end_of_file) читает термин и завершается ошибкой, если это не предикат "end_of_file." Это цель, которая потребляет каждую вторую строку в вашем примере.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...