1
我想讀取一個文件,然後根據第一個結果編寫另一個文件,但是一旦我讀取第一個文件,程序立即終止。我尋找了爲什麼會發生,但我沒有找到任何東西。我想知道有人能幫助我。Swi Prolog腳本不能正確執行
這是代碼:
main :-
current_prolog_flag(argv, Argv),
[H|_T] = Argv,
readPlainText(H),
getList(L),
open('result.txt',write,X),
write(X, L), nl(X),
close(X),
halt.
main :-
halt(1).
和腳本停止執行這段代碼後:
readPlainText(X) :-
open(X, read, Stream),
readWords(Stream),
close(Stream).
我從控制檯執行:
swipl -s leer.pl --quiet menciones.txt
編輯:我認爲問題在於at_end_of_stream
readWords(InStream) :-
\+ at_end_of_stream(InStream),
readWord(InStream, W),
write(W), nl,
addWordToDatabase(W),
readWords(InStream).