我将用户输入重定向到文件see('entradasaida.txt')
。这很好用。
虽然,当我尝试从该流输入文件中读取时,swi给出了这个错误:
ERROR: entradasaida.txt:3:0: Syntax error: Operator expected.
为什么呢?我该如何解决这个错误?
liste(A) :-
see(A),
nl,
read(B),
escreva(B),
seen.
escreva(A) :-
write(A),
nl,
A==end-of-file, !.
escreva(_) :-
read(A),
escreva(A).
18 ?- liste('entradasaida.txt').
ERROR: entradasaida.txt:2:0: Syntax error: Operator expected
19 ?- trace.
true.
[trace] 19 ?- liste('entradasaida.txt').
Call: (6) liste('entradasaida.txt') ? creep
Call: (7) see('entradasaida.txt') ? creep
Exit: (7) see('entradasaida.txt') ? creep
Call: (7) nl ? creep
Exit: (7) nl ? creep
Call: (7) read(_G627) ? creep
ERROR: entradasaida.txt:3:0: Syntax error: Operator expected
Exception: (7) read(_G648) ? creep
Exception: (6) liste('entradasaida.txt') ? creep
答案 0 :(得分:1)
我发现了自己的错误。 entradasaida.txt文件包含一些不以句点('。')结尾的行。 因此,read命令对该消息作出反应(错误:entradasaida.txt:2:0:语法错误:操作员期望)。