Printf output format

Source: Internet
Author: User

From: Click to open the link

Printf output format favorites
Format code A ABC ABCDEFGH
% S A ABC ABCDEFGH
% 5 S #### A ## ABC ABCDEFGH
%. 5 S A ABC ABCDE
% 5.5 S #### A ## ABC ABCDE
%-5 s a #### ABC # ABCDEFGH


Printf format string

Format code 1-12 12345 123456789
% D 1-12 12345 123456789
% 6d ##### 1 ###-12 #12345 123456789
%. 4d 0001-0012 12345 123456789
% 6.4d ## 0001 #-0012 #12345 123456789
%-4d 1 ####-12 #12345 123456789
% 04d 0001-012 12345 123456789
% + D + 1-12 + 12345 + 123456789

Printf format integer values
Format code 1.01. 00012345 12345.6789
% F 1.000000 0.010000 0.000123 12345.678900
% 10.2d ###### 1.00 ##### 0.01 ####### 0.00 #12345.67
% E 1.000000e + 00 1.000000e-02 1.234500e-04 1.234568e + 04
%. 4e 1.0000e + 00 1.0000e-02 1.2345e-04 1.20000e + 04
% G 1 0.01 0.00012345 12345.7

Format code 6.023e23
% F 60229999999999975882752.000000
%10.2e 60229999999999975882752.00
% E 6.023000e + 23
%. 4e 6.0230e + 23
% G 6.023e + 23

Printf format floating point value
The general format of printf () format conversion is as follows:
% (Flags) (width) (. prec) type
Parameters enclosed in parentheses are optional parameters, while % and type are necessary. Next we will first introduce several types

Integer
The integer % d is converted into a signed decimal number.
The % u integer is converted to an unsigned decimal number.
The % o integer is converted into an unsigned octal number.
The % x integer is converted to an unsigned hexadecimal number and expressed in lowercase abcdef.
The % X integer is converted into an unsigned hexadecimal number, and ABCDEF is used to represent the floating point number.

The parameter of the % f double type is converted to a decimal number and rounded to six digits below the decimal point.
Parameters of the % e double type are printed in an exponential form. There is a number that is before the decimal point, the six digits are after the decimal point, and the exponent part is expressed in lowercase e.
% E has the same effect as % e. The only difference is that the exponent part is expressed by an uppercase E.
Parameters of the % g double type are automatically printed in the format of % f or % e. The standard is determined based on the value to be printed and the specified number of valid digits.
The difference between % G and % g is the same. The only difference is that % E format is used for exponential printing.

Character and string
% C Integer Parameters are converted to the unsigned char type for printing.
The parameter % s pointing to the string will be output verbatim until NULL characters appear.
% P if the parameter is a void * pointer, it is displayed in hexadecimal format.

Prec has several situations
1. The minimum number of digits of a positive integer.
2. represents the number of decimal places in the floating point type
3.% g represents the maximum number of valid digits.
4.% s represents the maximum length of the string.
5. If the symbol is X, the value of the next parameter is the maximum length.

Width is the minimum length of the parameter. If this column is not a value but a * symbol, it indicates that the next parameter is used as the parameter length.

Flags has the following situations:
# NAME?
+ When printing a negative number, printf () will print a negative number, and the integer will not add any negative number. This flag adds a positive sign (+) before a positive number is printed ).
# This flag has different meanings based on the converted characters. When the type is o (for example, % # o), an o is printed before the octal value is printed.
Before the type is x (% # x), '0x 'is printed multiple times before the hexadecimal number is printed ', before the type is e, E, f, g, or G, a numeric value is forced to print the decimal point. When the type is g or G, the zero at the end of the decimal point and decimal point is also reserved.
0 when a specified parameter exists, the parameter without a number is set to 0. The flag is disabled by default, so white spaces are usually printed.

The complete format of printf format control:
%-0 m. n l or h characters
The following describes the composition formats:
① %: Indicates the starting symbol of the format description, which is indispensable.
②-: "Yes" indicates the left-aligned output. If it is omitted, "yes" indicates the right-aligned output.
③ 0: if there is 0, it indicates that the specified vacant space is filled with 0. If it is omitted, it indicates that the specified vacant space is not filled.
④ M. n: m indicates the domain width, that is, the number of characters that the corresponding output item occupies on the output device. N indicates the precision. It is used to describe the decimal places of the output real number. If n is specified, the implicit precision is n = 6 digits.
⑤ L or h: l refers to long type for integer type and double type for real type. H is used to modify the integer format characters to the short type.

---------------------------------------
Format characters
The format character is used to specify the data type and output format of the output item.
① D format: Used to output a decimal integer. It has the following usage:
% D: output according to the actual length of integer data.
% Md: m is the width of the specified output field. If the number of digits of the data is smaller than m, spaces are filled on the left side. If the number is greater than m, the data is output based on the actual number of digits.
% Ld: Output long integer data.
② O Format: outputs integers in the unsigned octal form. You can output long integers in "% lo" format. You can also specify the field width to output in "% mo" format.
Example:
Main ()
{Int a =-1;
Printf ("% d, % o", a, );
}
Running result:-1, 177777
Program parsing: the value of-1 is (1111111111111111) 2 in the inner storage unit (stored in the form of a supplemental code), and the value of-1 is (177777) 8.
③ X format: returns an integer in the unsigned hexadecimal format. You can output long integers in "% lx" format. You can also specify the field width to output in "% mx" format.
④ U format: returns an integer in unsigned decimal format. You can output long integers in "% lu" format. You can also specify the field width to output in "% mu" format.
⑤ C format: Output a character.
6 s format: Used to output a string. Usage
% S: for example, printf ("% s", "CHINA") Outputs A "CHINA" string (excluding double quotation marks ).
% Ms: The output string occupies the m column. If the length of the string is greater than m, the limit of m is exceeded and all strings are output. If the string length is less than m, spaces are left.
%-Ms: if the length of a string is less than m, the string is left-aligned and right-filled with spaces within the m column range.
% M. ns: the output occupies the m column, but only takes n characters from the left of the string. The n characters are output to the right of the m column with spaces left.
%-M. ns: the meaning of m and n is the same as above. n characters are output to the left of the m column range, and spaces are filled on the right. If n> m, the n value is automatically taken, that is, the normal output of n characters is guaranteed.
7. f format: Used to output real numbers (including Single and Double Precision) in decimal form. It has the following usage:
% F: the width is not specified. All integers are output and 6 decimal places are output.
% M. nf: the output occupies m columns, where n decimal places exist. For example, if the value width is less than m, spaces are filled at the left end.
%-M. nf: the output occupies n columns, where n decimal places exist. For example, if the value width is less than m, fill in spaces at the right end.
⑧ Eformat: returns the real number in exponential form. The following formats are available:
% E: The number part (also called the ending number) Outputs 6 decimal places, and the index part occupies 5 or 4 digits.
The characters % m. ne and %-m. ne: m, n, and "-" are the same as those before. Here, n refers to the decimal point of the numeric part of the data, and m indicates the width of the entire output data.
⑨ G format: automatically selects a short type of output in the f format or the E format, and does not output meaningless zero.

---------------------------------------
Further description of the printf function:
If you want to output the character "%", you should use two consecutive % characters in the "format control" string, for example:
Printf ("% f %", 1.0/3 );
0.333333% output.

---------------------------------------
For the single-precision number, only the first seven digits are valid digits and 6 decimal places when the % f format is used for output.
For the double-precision number, when the % lf format operator is used for output, the first 16 digits are valid digits with 6 decimal digits.

####################################### Collection # #######################################
Expert guidance
The format of m. n can also be expressed as follows (for example)
Char ch [20];
Printf ("% *. * s/n", m, n, ch );
* Defines the total width and the number of outputs. The Parameter m and n correspond to the outer parameters respectively. I think the advantage of this method is that the m and n parameters can be assigned outside the statement to control the output format.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.