C Format Specifier
The Format specifier is a string used in the formatted input and output functions. The format string determines the format of the input and output. The format string always starts with a ‘%’ character.
The commonly used format specifiers in printf() function are:
|%d or %i||It is used to print the signed integer value where signed integer means that the variable can hold both positive and negative values.|
|%u||It is used to print the unsigned integer value where the unsigned integer means that the variable can hold only positive value.|
|%o||It is used to print the octal unsigned integer where octal integer value always starts with a 0 value.|
|%x||It is used to print the hexadecimal unsigned integer where the hexadecimal integer value always starts with a 0x value. In this, alphabetical characters are printed in small letters such as a, b, c, etc.|
|%X||It is used to print the hexadecimal unsigned integer, but %X prints the alphabetical characters in uppercase such as A, B, C, etc.|
|%f||It is used for printing the decimal floating-point values. By default, it prints the 6 values after ‘.’.|
|%e/%E||It is used for scientific notation. It is also known as Mantissa or Exponent.|
|%g||It is used to print the decimal floating-point values, and it uses the fixed precision, i.e., the value after the decimal in input would be exactly the same as the value in the output.|
|%p||It is used to print the address in a hexadecimal form.|
|%c||It is used to print the unsigned character.|
|%s||It is used to print the strings.|
|%ld||It is used to print the long-signed integer value.|
Let’s understand the format specifiers in detail through an example.
In the above code, we are printing the integer value of b and c by using the %d specifier.
In the above program, we are displaying the value of b and c by using an unsigned format specifier, i.e., %u. The value of b is positive, so %u specifier prints the exact value of b, but it does not print the value of c as c contains the negative value.
In the above code, we are displaying the octal value and integer value of a.
- %x and %X
In the above code, y contains the hexadecimal value ‘A’. We display the hexadecimal value of y in two formats. We use %x and %X to print the hexadecimal value where %x displays the value in small letters, i.e., ‘a’ and %X displays the value in a capital letter, i.e., ‘A’.
The above code prints the floating value of y.
In the above code, we are displaying the floating value of y by using %g specifier. The %g specifier displays the output same as the input with a same precision.
Minimum Field Width Specifier
Suppose we want to display an output that occupies a minimum number of spaces on the screen. You can achieve this by displaying an integer number after the percent sign of the format specifier.
In the above program, %8d specifier displays the value after 8 spaces while %-8d specifier will make a value left-aligned.
Now we will see how to fill the empty spaces. It is shown in the below code:
In the above program, %08d means that the empty space is filled with zeroes.
We can specify the precision by using ‘.’ (Dot) operator which is followed by integer and format specifier.