prolog从文件读取引发特殊字符的错误

时间:2015-06-21 20:18:26

标签: prolog readfile

我在Prolog工作,正在尝试从文件读入。第一行是密码。使用密码,我希望能够使用特殊字符。

这是读取文件代码:

readfile(Filename):-  
    open(Filename, read, Str),  
    read(Str, Thepassword),  
    read(Str, Thefirewall),  
    close(Str),   
    nb_setval(password, Thepassword),  
    nb_setval(firewall, Thefirewall).  

这项工作正常,直到我将密码从布里坦尼改为britta!y,然后我得到ERROR: computer1.txt:1: Syntax error: Operator expected

任何人都知道我应该做什么?

1 个答案:

答案 0 :(得分:2)

ObjectMapper om = new ObjectMapper(); om.addHandler(MyDeserializationProblemHandler.getInstance()); 读取Prolog术语。您可能想要的是阅读整行,无论它是否在Prolog语法中。

在SWI Prolog中,您可以使用谓词read/2。 (见SWI manual entry)。您必须先使用read_line_to_codes/2包含库。

SICStus有一个类似的谓词read_line/1/2

如果您需要原子而不是代码列表,则可以使用use_module(library(readutil))进行转换。