如何获得std::numeric_limits<char>::min()
的正确和/或可读值?
cout << std::numeric_limits<char>::min() << endl;
cout << std::numeric_limits<char>::max() << endl;
返回
�
// some character that can't be copied here, it looks like a rectangle containing four numbers in it
答案 0 :(得分:7)
您只需要将其转换为流式传输到cout
时将其解释为整数的内容。 E.g。
#include <limits>
#include <iostream>
#include <ostream>
int main()
{
int minc = std::numeric_limits<char>::min();
unsigned maxc = std::numeric_limits<char>::max();
std::cout << minc << std::endl;
std::cout << maxc << std::endl;
}
我故意将unsigned
用于std::numeric_limits<char>::max()
,以防sizeof(int) == 1
和char
无符号。
答案 1 :(得分:5)
问题是标准流会将char
输出为字符而不是整数值。您可以通过强制转换为非字符类型的整数类型来强制它们执行此操作:
cout << (int)std::numeric_limits<char>::min() << endl;
cout << (int)std::numeric_limits<char>::max() << endl;
答案 2 :(得分:2)
只需将其投放到int
。
cout << (int)std::numeric_limits<char>::min() << endl;
cout << (int)std::numeric_limits<char>::max() << endl;