Flag Specifiers
The printf() conversion flags are enabled by specifying one or more of the following characters, which may appear in any order:
               
- 
                        '
- 
                     The integer portion of the result of a decimal conversion ( %i,%d,%u,%f,%g, or%G) is formatted with thousands grouping characters using the non-monetary grouping character. Some locales, including the POSIX C locale, do not provide non-monetary grouping characters for use with this flag.
- 
                        -
- 
                     The result of the conversion is left-justified within the field. The conversion is right-justified if this flag is not specified. 
- 
                        +
- 
                     The result of signed conversion always begins with a sign ( +or-). If this flag is not specified, the conversion begins with a sign only when a negative value is converted.
- 
                        space
- 
                     If the first character of a signed conversion is not a sign or if a signed conversion results in no characters, a space is placed before the result. If the spaceand+flags both appear, the space flag is ignored.
- 
                        #
- 
                     The value is converted to an alternate form if an alternate form is defined for the selected conversion. The alternate formats for conversions are described along with the corresponding conversion. 
- 
                        0
- 
                     For d,i,o,u,x,X,e,E,f,g, andGconversions, leading zeroes (following any indication of sign or base) are used to pad to the field width. No space padding is performed. If the0and-flags both appear, the0flag is ignored. Ford,i,o,u,xandXconversions, if a precision is specified, the0flag is ignored. If the0and'flags both appear, the grouping characters are inserted before the zero padding.