Print the result of a boolean as 'false' or 'true' in C language
How do you print a boolean in C?
There is no format specified for bool types.
C does not have boolean data types, and normally uses integers for boolean testing.
- One is used to represent true and Zero is used to represent false.
- For interpretation, anything non-zero is interpreted as true and Zero is interpreted as false.
Example: print a boolean in C
#include <stdio.h>
int main()
{
bool flag = true;
printf("%d", flag); // prints 1
printf("\n");
printf(flag ? "true" : "false"); // prints true
printf("\n");
printf("%s", flag ? "true" : "false"); // prints true
printf("\n");
fputs(flag ? "true" : "false", stdout); // prints true
}
To make life easier, C Programmers typically define the terms "true" and "false" to have values 1 and 0 respectively.
#define was used in the old days to accomplish this:
- #define true 1
- #define false 0
Currently, it is better to use const int instead of #define:
- const int true = 1;
- const int false = 0;
In C99, a new header, stdbool.h, defines the following types and constants:
The type "bool" is the same as a newly defined type "_Bool"
- _Bool is an unsigned integer, that can only be assigned the values 0 or 1
- Attempting to store anything else in a _Bool stores a 1.
- Variables can now be declared of type "bool".
stdbool.h also defines constants "true" and "false", with value 1 and 0 respectively.
To use these new features, use #include <stdbool.h> at the top of your program.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics