#include
< br />int main()
{
std::cout << false << std::endl;
}
Does the standard require a specific result on the stream? (For example, 0 means error)?
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.
#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
< 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