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

put(+Stream, +Code)

The character represented by the integer code Code is put onto the buffered output stream Stream.
Stream
Stream handle or alias (atom)
Code
Integer.

Description

Writes the character (or byte, in case of binary stream) represented by the integer Code onto the output stream Stream. The acceptable value range depends on the stream's character encoding, or is 0 to 255 for binary streams.

Note that the output from put/2 is usually buffered, and is only output to the stream when the output is flushed (e.g. using flush/1).

Character codes for the non-printable characters (i.e. control characters) are also acceptable.

Modes and Determinism

Exceptions

(4) instantiation fault
Stream is not instantiated.
(4) instantiation fault
Code 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.
(192) illegal stream mode
Stream is not an output stream.
(193) illegal stream specification
Stream is an illegal stream specification.

Examples

Success:
      ?- put(output, 0'a).
      a
      yes.

      ?- sh('cat file1').
      a
      yes.
      ?- open(file1,read,s1),
         open(file2,write,s2),repeat,
         ( at_eof(s1) ->
              !,
              flush(s2),
              close(s1),close(s2)
         ;
              get(s1,Char),
              put(s2,Char),
              fail
         ).
      Char = _g72
      yes.
      ?- sh('cat file2').
      a
      yes.

Error:
      put(output,A).             (Error 4).
      put(Stream,98).            (Error 4).
      put(output, '98').         (Error 5).
      put(output, 98.0).         (Error 5).
      put("string" A).           (Error 5).
      put(11,97).                (Error 192). % stream not open
      put(atom,97).              (Error 193).



See Also

get / 1, get / 2, put / 1, nl / 1