我正在学习如何在prolog中编程。我目前正在学习I / O并遇到以下问题。
我想使用此程序读取文件dane.txt
:
czytajPlik :-
open('dane.txt',read,X),
current_input(CI),
set_input(X),
kodOdczytujacy,
close(X),
set_input(CI).
kodOdczytujacy :- read(Term), obsluz(Term).
obsluz(end_of_file):-!.
obsluz(Term) :-
write(Term),nl,kodOdczytujacy.
然而,在Prolog中,当我尝试使用czytajPlik.
时,我收到以下错误:
ERROR: open/3: source_sink `'dane.txt'' does not exist (No such file or directory)
该文件存在并具有正确的名称。
答案 0 :(得分:1)
错误意味着Prolog解释器(我猜测SWIPl)无法打开文件,因为它无法找到该文件。
默认情况下,解释器会查看它所在的目录。您应该使用路径限定文件,或者cd到正确的目录。
因此,当文件位于~/prologstuff
时,请说明您已从目录~/misc
启动了Prolog。
czytajPlik :-
cd('../misc'),
open('dane.txt',read,X),
...
或
czytajPlik :-
open('../misc/dane.txt',read,X),
...
应该解决你的问题。