find :-
write('Enter File Name: '),
see(File).
seen.
现在用户可以输入文本文件名并使用see(File)谓词读取文本文件。但是see(File) 必须遵循see('File.txt') 之类的格式,那么如何根据用户输入的文件名读取文本文件呢?
find :-
write('Enter File Name: '),
see(File).
seen.
现在用户可以输入文本文件名并使用see(File)谓词读取文本文件。但是see(File) 必须遵循see('File.txt') 之类的格式,那么如何根据用户输入的文件名读取文本文件呢?
要捕获用户的输入,请使用 read() 谓词:
read(X).
所以你可以试试这个:
find :-
write('Enter File Name: '),
read(File),
see(File),
seen.
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。