#include
int printf( const char *format, ... );
Description:
The printf() function prints output to STDOUT, according to format and other arguments passed to printf(). The string format consists of two types of items - characters that will be printed to the screen, and format commands that define how the other arguments to printf() are displayed. Basically, you specify a format string that has text in it, as well as "special" characters that map to the other arguments of printf().
The %s means, "insert the first argument, a string, right here." The %d indicates that the second argument (an integer) should be placed there. There are different %-codes for different variable types, as well as options to limit the length of the variables and whatnot.
Code Format
---- ------
%c character
%d signed integers
%i signed integers
%e scientific notation, with a lowercase "e"
%E scientific notation, with a uppercase "E"
%f floating point
%g use %e or %f, whichever is shorter
%G use %E or %f, whichever is shorter
%o octal
%s a string of characters
%u unsigned integer
%x unsigned hexadecimal, with lowercase letters
%X unsigned hexadecimal, with uppercase letters
%p a pointer
%n the argument shall be a pointer to an integer into which is placed the number of characters written so far
%% a '%' sign
Precision = 1 for int types(d,i,x,X,o,u), 6 for float(f,eE but not g,G), infinite for s.
An integer placed between a % sign and the format command acts as a minimum field width specifier, and pads the output with spaces or zeros to make it long enough. If you want to pad with zeros, place a zero before the minimum field width specifier. You can use a precision modifier, which has different meanings depending on the format code being used.
- With %e, %E, and %f, the precision modifier lets you specify the number of decimal places desired. For example,
%12.6f
will display a floating number at least 12 digits wide, with six decimal places. - With %g and %G, the precision modifier determines the maximum number of significant digits displayed.
- With %s, the precision modifer simply acts as a maximum field length, to complement the minimum field length that precedes the period.
All of printf()'s output is right-justified, unless you place a minus sign right after the % sign. For example,
%-12.4f //left justification
will display a floating point number with a minimum of 12 characters, 4 decimal places, and left justified. You may modify the %d, %i, %o, %u, and %x type specifiers with the letter l and the letter h to specify long and short data types (e.g. %hd means a short integer). The %e, %f, and %g type specifiers can have the letter l before them to indicate that a double follows.
#
The %g, %f, and %e type specifiers can be preceded with the character '#' to ensure that the decimal point will be present, even if there are no decimal digits. The use of the '#' character with the %x type specifier indicates that the hexidecimal number should be printed with the '0x' prefix. The use of the '#' character with the %o type specifier indicates that the octal value should be displayed with a 0 prefix.
You can also include constant escape sequences in the output string.
The return value of printf() is the number of characters printed, or a negative number if an error occurred.
Example:
char name[20] = "Bob";
int age = 21;
printf( "Hello %s, you are %d years old\n", name, age );
OUTPUT: Hello Bob, you are 21 years old
Other Functions using formats
#include
int fprintf(FILE *stream, const char *format, ...);
int printf(const char *format, ...);
int sprintf(char *s, const char *format, ...);
#include/* as well as stdio.h */
int vfprintf(FILE *stream, const char *format, va list arg);
int vprintf(const char *format, va list arg);
int vsprintf(char *s, const char *format, va list arg);
Name Purpose fprintf
General formatted output as described. Output is written to the file indicated by stream
.printf
Identical to fprintf
with a first argument equal tostdout
.sprintf
Identical to fprintf
except that the output is not written to a file, but written into the character array pointed to bys
.vfprintf
Formatted output as for fprintf
, but with the variable argument list replaced by arg which must have been initialized byva_start
.va_end
is not called by this function.vprintf
Identical to vfprintf
with a first argument equal tostdout
.vsprintf
Formatted output as for sprintf
, but with the variable argument list replaced byarg
which must have been initialized byva_start
.va_end
is not called by this function.
No comments:
Post a Comment