Mercurial > hg > Members > kono > nitros9-code
view docs/ccguide/printf.refentry @ 2772:0a3f4d8ea6d5
Found ENDC in wrong location in dwread.asm and dwwrite.asm. Corrected.
Moved the native 6309 code in dwread.asm and dwwrite.asm into the H6309 labeled area and changed IFEQ H6309 to IFNE H6309. Also moved the 57600bps 6809 code to the default location. This change had been done in the old dwread.asm and dwwrite.asm files to make it easier to follow. Though these two files were overwritten from the HDBDOS project dwread.asm and dwwrite.asm files. So this conversion needed to be done again so it made the source easier to follow.
author | drencor-xeen |
---|---|
date | Wed, 23 Jan 2013 12:36:55 -0600 |
parents | 8a16d38f3d94 |
children |
line wrap: on
line source
<refentry id="printf"> <refnamediv> <refname>Printf</refname> <refname>Fprintf</refname> <refname>Sprintf</refname> <refpurpose>formatted output</refpurpose> </refnamediv> <refsynopsisdiv> <funcsynopsis> <funcsynopsisinfo> #include <stdio.h> </funcsynopsisinfo> <funcprototype> <funcdef><function>printf</function></funcdef> <paramdef>char *<parameter>control</parameter></paramdef> <paramdef>...</paramdef> </funcprototype> <funcprototype> <funcdef><function>fprintf</function></funcdef> <paramdef>FILE *<parameter>fp</parameter></paramdef> <paramdef>char *<parameter>control</parameter></paramdef> <paramdef>...</paramdef> </funcprototype> <funcprototype> <funcdef><function>sprintf</function></funcdef> <paramdef>char *<parameter>string</parameter></paramdef> <paramdef>char *<parameter>control</parameter></paramdef> <paramdef>...</paramdef> </funcprototype> </funcsynopsis> </refsynopsisdiv> <refsect1><title>Description</title> <para> Thse three functions are used to place numbers and strings on the output in formatted, human readable form. </para> <para> Fprintf places its output on the file "fp", printf on the standard output, and sprintf in the buffer pointed to by "string". NOTE that it is the user's responsibility to ensure that this buffer is large enough. </para> <para> The "control" string determines the format, type, and number of the following arguments expected by the function. If the control does not match the arguments correctly, the results are unpredictable. </para> <para> The control may contain characters to be copied directly to the output and/or format specifications. Each format specification causes the function to take the next successive argument for output. </para> <para> A format specification consists of a "%" character followed by (in this order): </para> <itemizedlist spacing="compact"> <listitem> <para> An optional minus sign ("-") that means left justification in the field. </para> </listitem> <listitem> <para> An optional string of digits indication the field width required. The field will be at least this wide and may be wider if the conversion requires it. The field will be padded on the left unless the above minus sign is present, in which case it will be padded on the right. The padding character is, by default, a space, but if the digit string starts with a zero ("0"), it will be "0". </para> </listitem> <listitem> <para> An optional dot (".") and a digit string, the precision, which for floating point arguments indicates the number of digits to follow the decimal point on conversion, and for strings, the maximum number of characters from the string argument are to be printed. </para> </listitem> <listitem> <para> An optional character "l" indicates that the following "d","x", or "o" is the specification of a long integer argument. NOTE that in order for the printing of long integers to take place, the source code must have in it somewhere the statement pflinit(), which causes routines to be linked from the library. </para> </listitem> <listitem> <para> A conversion character which shows the type of the argument and the desired conversion. The recognized conversion characters are: </para> <informaltable frame="none"> <tgroup cols="2"> <colspec colwidth="0.5in"/> <colspec colwidth="3in"/> <tbody> <row> <entry>d,o,x,X</entry> <entry>The argument is an integer and the conversion is to decimal, octal, or hexadecimal, respectively. "X" prints hex and alpha in upper case.</entry> </row> <row> <entry>u</entry> <entry>The argument is an integer and the conversion is to an unsigned decimal in the range 0 to 65535.</entry> </row> <row> <entry>f</entry> <entry>The argument is a double, and the form of the conversion is "[-]nnn.nnn". Where the digits after the decimal point are specified as above. If not specified, the precision defaults to six digits. If the precision is 0, no decimal point or following digits are printed.</entry> </row> <row> <entry>e,E</entry> <entry>The argument is a double and the form of the conversion is "[-]n.nnne(+or-)nn"; one digit before the decimal point, and the precision controls the number following. "E" prints the "e" in upper case.</entry> </row> <row> <entry>g,G</entry> <entry>The argument is a double, and either the "f" format or the "e" format is chosen, whichever is the shortest. If the "G" format is used, the "e" is printed in upper case.</entry> </row> </tbody> </tgroup> </informaltable> <para> NOTE in each of the above double conversions, the last digit is rounded. </para> <para> ALSO NOTE that in order for the printing of floats or doubles to take place, the source program <emphasis>must</emphasis> have the statement pffinit() somewhere. </para> <informaltable frame="none"> <tgroup cols="2"> <colspec colwidth="0.5in"/> <colspec colwidth="3in"/> <tbody> <row> <entry>c</entry> <entry>The argument as a character.</entry> </row> <row> <entry>s</entry> <entry>The argument is a pointer to a string. Characters from the string are printed up to a null character, or untill the number of characters indicated by the precision have been printed. If the precision is 0 or missing, the characters are not counted.</entry> </row> <row> <entry>%</entry> <entry>No argument corresponding; "%" is printed.</entry> </row> </tbody> </tgroup> </informaltable> </listitem> </itemizedlist> </refsect1> <refsect1><title>See Also</title> <para> Kernighan & Ritchie pages 145-147. <link linkend="putc">putc()</link>, <link linkend="scanf">scanf()</link> </para> </refsect1> </refentry>