prolog - Reading from user_input causes ":|" to appear in output -
my code using read_line_to_codes/2 , read_stream_to_codes/2 in order read user_input. how these reads organized:
main :- read_line_to_codes(user_input, [a]), read_line_to_codes(user_input, b), /* parsing happens here */ read_stream_to_codes(user_input, c), /* more parsing happens here , code goes on */ i compiling programme using next command:
swipl -q -t main -o programme -c program.pl the programme runs fine, due reads in main, output |:|: characters (the swipl console shows |: whenever user has input something). when remove i/o code program, runs without outputting characters.
is there way rid of behavior?
you have utilize prompt1/1 predicate set prompt next line or prompt/2 alter prompt message globally.
e.g. using prompt1/1:
?- read_line_to_codes(user_input, l). |: test l = [116, 101, 115, 116]. ?- prompt1(''), read_line_to_codes(user_input, l). test l = [116, 101, 115, 116]. or, using prompt/2:
?- prompt(old, 'give me: '). old = '|: '. ?- read_line_to_codes(user_input, l). give me: abc l = [97, 98, 99]. prolog swi-prolog
No comments:
Post a Comment