2011-02-24 83 views
8

我们怎样才能从用户在序言东西: 例如:用户输入,我们该怎么做?

animal(dog). 
animal(cat). 
write('please type animal name:'),nl. 
/* How to read from user and store it to X 
and then check that user has typed animal name ?*/ 
?-animal(X). 

回答

14

您可以使用read了点。例如,你可以写read(X), animal(X).到序言解释或写入到一个脚本文件这样的:

:- read(X), animal(X). 

如果你再输入一个有效的动物名进入提示,它将如果你输入一个无效的名称势必X. ,它不会。

或者你可以定义这样一个过程:

read_animal(X) :- 
    write('please type animal name:'), 
    nl, 
    read(X), 
    animal(X). 

然后像read_animal(X).解释调用它的。

请注意,输入需要以.结尾。

+0

动物(狗)。 动物(猫)。 动物(牛)。 写('请输入动物名称:'),nl。 阅读(X)。 动物(X)。 – 2011-02-24 17:02:53

+0

根本不工作 – 2011-02-24 17:03:10

+3

@Parkhid:它是'read',而不是'Read'。还要注意,你需要用'.'来终止输入。我编辑了我的答案来澄清。它绝对有用。 – sepp2k 2011-02-24 17:16:02

-1

动物('X')。 输入: - write(“输入你的名字”),nl, read(X),nl, write(X)。

-1

阅读值 %name id stud_name('ankit',01)。 stud_name('varun',02)。

Read_stud: - 写( “写名字就知道了学生的ID”),NL, 读(输入),NL, stud_name(输入,输出),NL, 写(输出)。

+0

Hello ankit!欢迎来到Stack Overflow。如果你想知道为什么你的答案被低估了,这里有一些提示:(a)这个问题已经六年了。 (b)已经有许多赞成的答案,你的回答没有增加任何新东西。 (c)请解释您用完整句子发布的代码。 (d)请格式化您的代码并使用正确的代码格式(https://stackoverflow.com/help/formatting)。 – 2017-05-25 16:23:14