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

How to get std::numeric_limits<char>::min() value?

本文关键字:min char numeric 何获取 获取 std limits      更新时间:2023-10-16

如何获得(正确和/或可读的值)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                  

您只需要将其转换为流到cout时将其解释为整数的东西。例如

#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是无符号的。

问题是标准流将char s作为字符而不是整数值输出。你可以通过转换为非字符类型的整型来强制它们这样做:

cout << (int)std::numeric_limits<char>::min() << endl;
cout << (int)std::numeric_limits<char>::max() << endl;

直接转换为int

cout << (int)std::numeric_limits<char>::min() << endl;
cout << (int)std::numeric_limits<char>::max() << endl;