Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ printf(3S) — GENIX 4.1A

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

putc(3)

scanf(3)

ecvt(3)



      PRINTF(3S)              GENIX Programmer's Manual              PRINTF(3S)



      NAME
           printf, fprintf, sprintf - formatted output conversion

      SYNOPSIS
           #include <stdio.h>

           printf(format [, arg ] ...  )
           char *format;

           fprintf(stream, format [, arg ] ...  )
           FILE *stream;
           char *format;

           sprintf(s, format [, arg ] ...  )
           char *s, format;

      DESCRIPTION
           Printf places output on the standard output stream stdout.   Fprintf
           places  output  on the named output stream.  Sprintf places `output'
           in the string s, followed by the character `\0'.

           Each of these functions converts, formats, and prints its  arguments
           after  the  first  under  control  of the first argument.  The first
           argument is a character string which contains two types of  objects:
           plain  characters, which are simply copied to the output stream, and
           conversion specifications,  each  of  which  causes  conversion  and
           printing of the next successive arg printf.

           Each conversion specification is  introduced  by  the  character  %.
           Following the %, there may be

           -    an optional minus sign `-' which specifies left  adjustment  of
                the converted value in the indicated field;

           -    an optional digit string specifying a field width; if the  con-
                verted  value has fewer characters than the field width it will
                be blank-padded on the left (or right, if  the  left-adjustment
                indicator  has  been  given) to make up the field width; if the
                field width begins with  a  zero,  zero-padding  will  be  done
                instead of blank-padding;

           -    an optional period `.' which serves to separate the field width
                from the next digit string;

           -    an optional digit string specifying a precision which specifies
                the  number of digits to appear after the decimal point, for e-
                and f-conversion, or the maximum number  of  characters  to  be
                printed from a string;

           -    the character l specifying that a  following  d,  o,  x,  or  u
                corresponds  to  a  long integer arg. (A capitalized conversion
                code accomplishes the same thing.)



      Printed 11/16/83                                                        1





      PRINTF(3S)              GENIX Programmer's Manual              PRINTF(3S)



           -    a character which  indicates  the  type  of  conversion  to  be
                applied.

           A field width or precision may be `*' instead of a digit string.  In
           this case an integer arg supplies the field width or precision.

           The conversion characters and their meanings are

           doxb The integer arg is converted to decimal, octal, hexadecimal, or
                binary notation respectively.

           f    The float or double arg is converted to decimal notation in the
                style  `[-]ddd.ddd'  where  the number of d's after the decimal
                point is equal to the precision specification for the argument.
                If  the precision is missing, 6 digits are given; if the preci-
                sion is explicitly 0,  no  digits  and  no  decimal  point  are
                printed.

           e    The  float  or  double  arg   is   converted   in   the   style
                `[-]d.ddde+dd'  where  there  is  one  digit before the decimal
                point and the number after is equal to the precision specifica-
                tion  for the argument; when the precision is missing, 6 digits
                are produced.

           g    The float or double arg is printed in style d, in style  f,  or
                in style e, whichever gives full precision in minimum space.

           c    The character arg is printed.

           s    Arg is taken to be a string (character pointer) and  characters
                from the string are printed until a null character or until the
                number of characters indicated by the  precision  specification
                is  reached; however if the precision is 0 or missing all char-
                acters up to a null are printed.

           u    The unsigned integer arg is converted to  decimal  and  printed
                (the  result will be in the range 0 through MAXUINT, where MAX-
                UINT equals 4294967295 on an NS16000 or VAX-11 and 65536  on  a
                PDP-11).

           %    Print a `%'; no argument is converted.

           r    The arg is taken as an entire printf calling sequence of format
                plus  args  and is printed recursively within the original call
                to printf.  This is useful where a message and arguments are to
                be passed to another routine for printing, as in error handling
                routines.

           In no case does a non-existent or small field width cause truncation
           of  a  field;  padding takes place only if the specified field width
           exceeds the  actual  width.   Characters  generated  by  printf  are
           printed by putc(3).



      Printed 11/16/83                                                        2





      PRINTF(3S)              GENIX Programmer's Manual              PRINTF(3S)



           Examples
           To print a date and time in the form `Sunday, July 3, 10:02',  where
           weekday and month are pointers to null-terminated strings:

                printf("%s, %s %d, %02d:%02d", weekday, month, day, hour, min);

           To print pi to 5 decimals:

                printf("pi = %.5f", 4*atan(1.0));

           To use the r format:


                main ()   {
                     remote ("%s `%c'0, "a string followed by a char", 'T');
                     }
                remote (args)
                char **args;
                     {
                     printf ("before3rafter0, n, &args, n);
                     }
                This would print:
                     before
                     a string followed by a char T
                     after

      SEE ALSO
           putc(3), scanf(3), ecvt(3)

      BUGS
           Very wide fields (>128 characters) fail.
























      Printed 11/16/83                                                        3



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026