我正在做一个编程任务,我想知道是否有人可以帮助我解决这个问题。这个任务说要在 Prolog 中编写一个程序,该程序从输入文本文件中获取文本并将其写入输出文本文件。为了获取文本文件的位置,需要提示用户写入文本文件的路径。
我已经想出了如何做到这一点,但我有一个小问题真的很烦人。这是我的代码:
main:-
%Ask the user for the input text file and then open the file
write('Please enter the filename you would like to read from:'),
nl,
read(X),
open(X,read,In),
%Ask the user for the output text file and then open the file
write('Please enter the filename you would to write to:'),
nl,
read(Y),
open(Y,write,Out),
%Read in characters from the input text file and then put them
%on the output text file.
tell(Out),
repeat,
get_char(In,T),
write(T),
T == end_of_file, !,
close(In),
told,
close(Out).
假设要读取的文本文件说“这是一个测试”。我的问题是,如果我使用程序保存此文本并将其写入另一个文本文件,它将改为写“这是一个 testend_of_file”。
我意识到发生这种情况是因为循环没有在正确的时间终止,但我不确定如何修复循环,因此“end_of_file”也不会被意外写入文本文件。任何帮助将非常感激。我觉得我什么都试过了。