C Printbul value, what?

I print bool to the output stream as follows:

#include 
< br />int main()
{
std::cout << false << std::endl;
}

Does the standard require a specific result on the stream? (For example, 0 means error)?

The standard stream has a boolalpha flag to determine the displayed content-when it is false, They will be displayed as 0 and 1. When it is true, they will be displayed as false and true.

There is also a std::boolalpha manipulator to set the flag, so this:

p>

#include 
#include

int main() {
std::cout< std::cout << std::boolalpha;
std::cout< return 0;
}

… produces the following output:

0
false

For its value, when boolalpha is set to The actual word produced when true is localized-i.e. has a num_put category to handle number conversion, so if you instill a stream with the correct locale, it can/will print out true and false because they are in that Represented in the locale. For example,

#include 
#include
#include

int main() {
std::cout.imbue(std::locale("fr"));

std::cout << false << " " ;
std::cout << std::boolalpha;
std::cout << false << " ";
return 0;
}

…at least in theory (assuming your compiler/standard library accepts “fr” as an identifier for “French”) it might print faux instead of false. However, I should add that the real Support is uneven at best – even Dinkumwar e/Microsoft library (usually pretty good in this regard) will also print errors for every language I checked.

Although the names used are defined in the dumpunct facet, but if you really want them to be correct To print out a specific language, you can create a dumpunct facet to do this. For example, (I believe) at least a fairly accurate one in French looks like this:

 #include 
#include
#include
#include
#include

class my_fr: public std::numpunct< char> {
protected:
char do_decimal_point() const {return','; }
char do_thousands_sep() const {return'.'; }< br /> std::string do_grouping() const {return ""; }
std::string do_truename() const {return "vrai"; }
std::string do_falsename() const {return "faux"; }
};

int main() {
std::cout.imbue(std::locale(std::locale(), new my_fr));

std::cout << false << " ";
std::cout << std::boolalpha;
std::cout < return 0;
}

The result is (as you might expect):

0
faux

I print bool to the output stream as follows:

< pre>#include

int main()
{
std::cout << false << std::endl;
}

Does the standard require a specific result on the stream (e.g. 0 for error)?

The standard stream has a boolalpha flag to determine what is displayed-when it is false, they will be displayed as 0 and 1. When it is true When, they will be displayed as false and true.

There is also a std::boolalpha manipulator to set the flag, so this:

 #include 
#include

int main() {
std::cout< std ::cout << std::boolalpha;
std::cout< return 0;
}

… produces as follows Output:

0
false

For its value, the actual word produced when boolalpha is set to true is localized – ie There is a num_put category to handle number conversion, so if you instill a stream with the correct locale, it can/will print out true and false because they are represented in that locale. For example,

< p>

#include 
#include
#include

int main() {
std ::cout.imbue(std::locale("fr"));

std::cout << false << " ";
std::cout << std ::boolalpha;
std::cout << false << " ";
return 0;
}

…at least in theory (assuming your The compiler/standard library accepts “fr” as an identifier for “French”) it may print out faux instead of false. However, I should add that the real support for this is uneven at best-even Dinkumware/Microsoft The library (usually pretty good in this regard) will also print errors for each language I checked.

The name used is in num punct facet, but if you really want them to be able to print out a specific language correctly, you can create a dumpunct facet to do this. For example, (I believe) the French one that is at least fairly accurate looks like this:

#include 
#include
#include
#include
#include

class my_fr: public std::numpunct< char> {
protected:
char do_decimal_point() const {return','; }
char do_thousands_sep() const {return'.'; }
std::string do_grouping() const {return ""; }
std::string do_truename() const {return "vrai" ; }
std::string do_falsename() const {return "faux"; }
};

int main() {
std::cout.imbue (std::locale(std::locale(), new my_fr));

std::cout << false << " ";
std::cout << std::boolalpha;
std::cout << false << " ";
return 0;
}

The result is (as you might expect That way):

0
faux

Leave a Comment

Your email address will not be published.