What should be the output of a single percent sign?
#include <stdio.h>
void main()
{
printf("%");
}
"Unknown format code" is not like "Unknown escape sequence".
CodePudding user response:
What you're doing is undefined behavior.
Section 7.21.6.1p9 of the C standard regarding format specifiers for fprintf
(and by extension printf
) states:
If a conversion specification is invalid, the behavior is undefined. If any argument is not the correct type for the corresponding conversion specification, the behavior is undefined.
Also, gcc will generate a warning with -Wall
if you do this:
warning: spurious trailing ‘%’ in format [-Wformat=]
The correct way to print a %
character is with the format specifier %%
.
printf("%%");
CodePudding user response:
%
is used to signal that you want to print a variable e.g.
int i = 10;
printf("%d", i); //prints 10
In order to just print the '%' sign you must escape it as
printf("%%");