1
我在Prolog中工作,并试图从文件读入。第一行是密码。有了密码,我希望能够使用特殊字符。从文件中读取prolog在特殊字符上抛出错误
这里是读文件代码:
readfile(Filename):-
open(Filename, read, Str),
read(Str, Thepassword),
read(Str, Thefirewall),
close(Str),
nb_setval(password, Thepassword),
nb_setval(firewall, Thefirewall).
,直到我从布列塔尼更改密码,以布丽塔是本机工作正常,然后我得到ERROR: computer1.txt:1: Syntax error: Operator expected
。
任何人都知道我应该怎么办呢?
'read'不会读取字符串,而是序言条款。 – dlask
正如@dlask所说,“read/2”读取Prolog条款(请参阅[文档](http://www.swi-prolog.org/pldoc/man?predicate=read/2))。你需要显示你的输入文件的实际外观。你曾经工作过的是恰当的Prolog术语。但是不再在引入'!'符号时。 – lurker
像你这样使用'nb_setval/2'显然是滥用。某些Prolog系统太容易提供这种功能是相当可悲的。 – false