1
find :-
    write('Enter File Name: '),
    see(File).
    seen.

现在用户可以输入文本文件名并使用see(File)谓词读取文本文件。但是see(File) 必须遵循see('File.txt') 之类的格式,那么如何根据用户输入的文件名读取文本文件呢?

4

2 回答 2

0

要捕获用户的输入,请使用 read() 谓词:

 read(X).

所以你可以试试这个:

find :-
    write('Enter File Name: '),
    read(File),
    see(File),
    seen.
于 2013-06-26T17:30:41.607 回答
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'), !).

这是我终于得到的正确答案。输入一个包含单引号的文件名,然后检查文件中是否存在该名称。

True将返回 Record found否则record not found。

于 2013-06-28T17:17:31.297 回答