2013-06-26 88 views
1
find :- 
    write('Enter File Name: '), 
    see(File). 
    seen. 

現在用戶可以輸入文本文件名並使用see(File)謂詞讀取文本文件。 但是,請參閱(文件)必須遵循格式,請參閱('File.txt'),那麼如何讀取基於用戶輸入文件名的文本文件?從用戶輸入中讀取文本文件

回答

0
find:- 
    write('Enter File Name: '), 
    read(File), 
    processFind(File). 
processFind(File):- 
    write('Enter A Name: '), 
    read(Name), 
    see(File), 
    repeat, 
    read(Term), 
    processCheck(Term, Name), 
    seen. 
processCheck(end_of_file, _):- 
    write('Record Not Found'), !. 
processCheck(Term, Name):- 
    Term = Name -> (write('Record Found'), !). 

這是正確答案我終於明白了。 輸入文件名,包括一個單引號,然後去檢查名稱是否存在的文件或不

確實將返回記錄找到否則找不到記錄。

0

爲了抓住您使用的read()謂詞用戶輸入:

read(X). 

所以,你可以試試這個:

find :- 
    write('Enter File Name: '), 
    read(File), 
    see(File), 
    seen. 
+0

但輸出會是這樣 輸入文件名: |:「xxx.txt」 ,我想這樣的 輸入文件名:「xxx.txt」 –

+0

我可以假設用戶將無法輸入文件名與單引號。因此,我怎麼能把它的單引號。? –

+0

我沒有安裝我的prolog系統來測試,但可以使用string_concat/3來連接單引號嗎? –