[ Character I/O | Reference Manual | Alphabetic Index ]

get(+Stream, -Code)

Reads the next character from the input stream Stream
Stream
Stream handle or alias (atom)
Code
Variable or integer.

Description

Takes the next character from the input stream Stream, and unifies its integer character code with Code. The range of possible values depends on the stream's text encoding, or is 0 to 255 for binary streams.

Character codes for the non-printable characters (i.e. control characters) are treated like normal characters.

On end-of-file, -1 is returned (via the default handler for event 190).

Modes and Determinism

Exceptions

(4) instantiation fault
Stream is not instantiated.
(5) type error
Stream is neither a stream handle nor an atom.
(5) type error
Code is instantiated, but not to an integer.
(190) end of file reached
End of file has been reached.
(192) illegal stream mode
Stream is not an input stream.
(193) illegal stream specification
Stream is an illegal stream specification.

Examples

Success:
      ?- get(input, X).
       a
      X = 97
      yes.

      ?- get(input, 0'a), get(input,97).
       aa
      yes.
Fail:
      ?- get(input,98).
       a
      no.
Error:
      get(Stream,98).                 (Error 4).
      get(input, '98').               (Error 5).
      get(10,A).                      (Error 192).
      get(atom,A).                    (Error 193).

See Also

get / 1, put / 1, put / 2