2011-05-06 49 views
0

我使用swi序言。我的代碼運行第一行,但它不運行其他。序言問題

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

我得到一個意外的文件錯誤結束。你有什麼主意嗎?

回答

1

readln/1不在swi-prolog手冊中,所以也許你應該包含代碼。 假設它確實你說什麼,該代碼也許應該是:

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

/0「結構」的工作原理是重複......直到

在一個側面說明重複,我寧願遞歸解決方案... like

io(end_of_file):- 
    write(end_of_file). 
io(_):- 
    readln(A), 
    write(A), 
    io(A). 

感覺更具說明性。