2011-02-24 10 views
8

¿Cómo podemos obtener algo de usuario en el prólogo: por ejemplo:Entrada de usuario, ¿cómo podemos hacerlo?

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). 

Respuesta

14

Puede utilizar read para eso. Por ejemplo, usted podría escribir read(X), animal(X). en el intérprete de prólogo o escribir esto en un archivo de script:

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

Si a continuación, introduce un nombre válido de animales en el símbolo, quedará vinculado a X. Si introduce un nombre no válido no lo hará

O puede definir un procedimiento como éste:

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

Y luego llamarlo en el en el intérprete como read_animal(X)..

Tenga en cuenta que la entrada debe finalizar con un ..

+0

animal (perro). animal (gato). animal (vaca). write ('Por favor, introduzca un nombre de animal:'), nl. Lea (X). animal (X). –

+0

no funciona en absoluto –

+3

@Parkhid: es 'leer', no' leer'. También tenga en cuenta que debe finalizar la entrada con un '.'. Edité mi respuesta para aclarar. Definitivamente funciona. – sepp2k

-1

Animal ('X'). Entrada: - escribir ("escriba su nombre"), nl, leer (X), nl, escribir (X).

-1

Reading values ​​ % name id stud_name ('ankit', 01). stud_name ('varun', 02).

Read_stud: - escritura ("escribir el nombre para saber Id del estudiante"), nl, Read (Entrada), nl, stud_name (entrada, salida), nl, escritura (Salida).

+0

¡Hola, amigo! Bienvenido a Stack Overflow. Si se pregunta por qué sus respuestas fueron desestimadas, aquí hay algunos consejos: (a) Esta pregunta tiene seis años. (b) Ya hay una respuesta aceptada con muchos upvotes, y sus respuestas no agregaron nada nuevo. (c) Por favor explique el código que publica en oraciones completas. (d) Formatee su código correctamente y use el formato de código correcto (https://stackoverflow.com/help/formatting). –

Cuestiones relacionadas