#### 14.2.3 Line-Oriented Input ¶

To read from a file it must be opened for reading using `fopen`. Then a line can be read from the file using `fgetl` as the following code illustrates

    fid = fopen ("free.txt");
    txt = fgetl (fid)
         ⊣ Free Software is needed for Free Science
    fclose (fid);

This of course assumes that the file ‘`free.txt`’ exists and contains the line ‘`Free Software is needed for Free Science`’.

`str =` fgetl `(fid)` ¶
`str =` fgetl `(fid, len)` ¶

  Read characters from a file, stopping after a newline, or EOF, or len characters have been read.

  The characters read, excluding the possible trailing newline, are returned as a string.

  If len is omitted, `fgetl` reads until the next newline character.

  If there are no more characters to read, `fgetl` returns −1.

  To read a line and return the terminating newline, see `fgets`.

  See also: fgets, fscanf, fread, fopen.

`str =` fgets `(fid)` ¶
`str =` fgets `(fid, len)` ¶

  Read characters from a file, stopping after a newline, or EOF, or len characters have been read.

  The characters read, including the possible trailing newline, are returned as a string.

  If len is omitted, `fgets` reads until the next newline character.

  If there are no more characters to read, `fgets` returns −1.

  To read a line and discard the terminating newline, see `fgetl`.

  See also: fputs, fgetl, fscanf, fread, fopen.

`nlines =` fskipl `(fid)` ¶
`nlines =` fskipl `(fid, count)` ¶
`nlines =` fskipl `(fid, Inf)` ¶

  Read and skip count lines from the file specified by the file descriptor fid.

  `fskipl` discards characters until an end-of-line is encountered exactly count-times, or until the end-of-file marker is found.

  If count is omitted, it defaults to 1. count may also be `Inf`, in which case lines are skipped until the end of the file. This form is suitable for counting the number of lines in a file.

  Returns the number of lines skipped (end-of-line sequences encountered).

  See also: fgetl, fgets, fscanf, fopen.