XLISP read-char

Nyquist / XLISP 2.0 - Contents | Tutorials | Examples | Reference

# read-char

Type: | - | function (subr)
Source: | - | xlfio.c

## Syntax

(read-char [source])
  source - an optional source, must be a file pointer or stream, default is *standard-input*
  returns - the character

## Description

The 'read-char' function reads a single character from the specified 'source'. The character read is returned as a single character value for the result. The 'source' may be a file pointer or a stream. If there is no 'source', *standard-input* is the default. If an end-of-file is encountered in the 'source', then NIL will be returned as the result.

## Examples

    (setq fp (open "f" :direction :output))  ; set up file
    (print 12.34 fp)
    (close fp)

    (setq fp (open "f" :direction :input))   ; now read the file
    (read-char fp)                           ; returns #\1
    (read-char fp)                           ; returns #\2
    (read-char fp)                           ; returns #\.
    (read-char fp)                           ; returns #\3
    (read-char fp)                           ; returns #\4
    (read-char fp)                           ; returns #\Newline
    (read-char fp)                           ; returns NIL - empty
    (close fp)

Common Lisp: The XLISP and Common Lisp 'read-char' functions are compatible for simple cases. They both allow for the optional 'source'. However, in Common Lisp, there are addition parameters which occur right after 'source'. So, when porting from Common Lisp to XLISP, remember there are additional arguments in Common Lisp's 'read-char' function.

Common Lisp: Common Lisp specifies that 'read' operations with a 'source' of NIL will come from *standard-input*. XLISP does not read the input from *standard-input* with a 'source' of NIL. Common Lisp also specifies that a 'source' of T will read from *terminal-io* which is not defined in XLISP by default. XLISP does not allow T as a valid argument for 'source'.

See the read-char function in the XLISP 2.0 manual.

Back to Top

Nyquist / XLISP 2.0 - Contents | Tutorials | Examples | Reference