如何获取std :: numeric_limits <char> :: min()值?</char>

时间:2011-12-29 19:34:11

标签: c++ types

如何获得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                  

3 个答案:

答案 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) == 1char无符号。

答案 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;