Input 读后执行写操作
我正在制作一个prolog程序来玩“尼姆的游戏”,程序运行良好。我正在尝试制作一个用户界面来玩游戏,首先,用户必须说他希望游戏的初始状态是。但是,当我执行代码段中显示的代码时,只有在键入一些输入后,才会执行写操作。 有人知道如何解决这个问题吗Input 读后执行写操作,input,prolog,Input,Prolog,我正在制作一个prolog程序来玩“尼姆的游戏”,程序运行良好。我正在尝试制作一个用户界面来玩游戏,首先,用户必须说他希望游戏的初始状态是。但是,当我执行代码段中显示的代码时,只有在键入一些输入后,才会执行写操作。 有人知道如何解决这个问题吗 init(List) :- write('Enter number of matches in heaps [N1, N2, N3]:'), read(List). 我希望输出为: ?- init(X). Enter number of
init(List) :-
write('Enter number of matches in heaps [N1, N2, N3]:'),
read(List).
我希望输出为:
?- init(X).
Enter number of matches in heaps [N1, N2, N3]: [1, 3, 5].
X = [1, 3, 5].
但我得到了:
?- init(X).
[1, 3, 5].
Enter number of matches in heaps [N1, N2, N3]:
X = [1, 3, 5].
这可能是因为流属性
buffer
的值为line
或full
而不是false
,所以在写调用之前,可以尝试使用set\u stream(user\u output,buffer(false))
更改它。您可以通过在写和读之间添加nl来验证这一点。写(…),nl,读(…)。