This predicate sets the current input stream, stream predicates like get_byte/1 use the current input stream. The stream must not be an output stream.
see also: at_end_of_stream/0 at_end_of_stream/1 close/1 close/2 close_user_streams/0 current_input/1 current_output/1 flush_output/0 flush_output/1 open/3 open/4 prolog I/O set_output/1 set_stream_position/2 set_stream_property/2 stream_property/2
| Example | |
| set_input(user_in). | if there is an input stream called 'user_in' then the current stream becomes 'user_in' |
| Exceptions | |
| stream_or_alias is a variable | an instantiation_error exception is thrown |
| stream_or_alias is neither a variable nor a stream term nor an alias | a domain_error(stream_or_alias, Stream) exception is thrown, the variable Stream is assigned the incorrect stream_or_alias term |
| stream_or_alias is not associated with an open stream | an existence_error(stream, Stream) exception is thrown |
| stream_or_alias is an output stream | a permission_error(input, stream, Stream) exception is thrown |