File io 序言问题

File io 序言问题,file-io,prolog,File Io,Prolog,我使用swi-prolog。我的代码运行第一行,但不运行其他行 see(Data), //open file to read repeat, readln(A), //read line from file write(A), A\==end_of_file,!. 我收到一个意外的文件结束错误。你有什么想法吗?readln/1在swi prolog手册中不是一个,所以也许你也应该包括这方面的代码。 假设它符合您所说的,那么代码可能应该是: see(Data),

我使用swi-prolog。我的代码运行第一行,但不运行其他行

 see(Data), //open file to read
   repeat,
    readln(A), //read line from file 
    write(A),
   A\==end_of_file,!.

我收到一个意外的文件结束错误。你有什么想法吗?

readln/1在swi prolog手册中不是一个,所以也许你也应该包括这方面的代码。 假设它符合您所说的,那么代码可能应该是:

 see(Data), //open file to read
   repeat,
   readln(A), //read line from file 
   write(A),
   A=end_of_file,!.
repeat/0“结构”的工作原理类似于repeat…直到

另一方面,我更喜欢递归解决方案……比如

io(end_of_file):-
    write(end_of_file).
io(_):-
    readln(A),
    write(A),
    io(A).
感觉更具陈述性