0
Why do we need format specifiers in C language?
5 Réponses
+ 10
• Printing Out and Inputting Variables
C uses formatted output. The 'printf' function has a special formatting character (%) — a character following this defines a certain format for a variable:
%c — characters
%d — integers
%f — floats
printf("%c %d %f", ch, i, x);
NOTE: Format statement enclosed in "..." , variables follow after. Make sure order of format and variable data types match up.
scanf() is the function for inputting values to a data structure. Its format is similar to 'printf' :
scanf("%c %d %f", &ch, &i, &x);
NOTE: & before variables.
Here is an example,
• https://code.sololearn.com/cbvUE5gzIv4q/?ref=app
+ 2
because each representation of data are different, integers, characters, hexadecimal, floating point etc.
+ 1
Because that's the way input and output stream functions would "interpret" what type of variables they're going to be dealing with. For instance, an integer argument needs a `%d` specifier to format correctly the produced string of a `printf()` statement. Using the wrong specifier, for example, `%f` in above situation leads to undefined behavior.
Example:
int main(void)
{
char c;
int n, m;
double d1, d2;
scanf("%c", &c); /* OK */
scanf("%d", &n); /* OK */
scanf("%lf", &d1); /* OK */
printf("%c\n", c); /* OK */
printf("%d\n", n); /* OK */
printf("%f\n", d1); /* OK */
scanf("%c", &m); /* UB */
scanf("%f", &d2); /* UB */
printf("%d\n", m); /* The content of m is undefined */
printf("%f\n", d2); /* The content of d2 is undefined */
}
Inputs:
c
4
3.14
254
2.5002
Outputs:
c
4
3.140000
10
0.000000
Live demo: https://rextester.com/ZMNW93858
0
Format specifiers in C. Format specifier is used during input and output. It is a way to tell the compiler what type of data is in a variable during taking input using scanf() or printing using printf(). Some examples are %c, %d, %f, etc.