打印char类型的数据为十六进制格式
#include <iostream>
#include <iomanip> // 必须包含iomanip头文件来使用setw和hex
int main()
{
char c = 0x65; // 假设我们要打印0x65的十六进制表示
std::cout << std::hex << static_cast<int>(c) << std::endl;
return 0;
}
由于std::hex
操作符是针对整型输出的,因此我们需要将char
类型显式转换为int
该用法常见打印视频流的起始码和NALU类型,判断当前获取到的码流类型,打印效果如: 0 0 0 1 65
无法显示中文的问题
server2019系统控制台启动程序中文显示为???
查阅了一下发现编码并没有问题,高级保存选项和控制台的编码选项都是GB2312,尝试了很多之后发现控制台还原旧版可以解决问题。
控制台打开——》右击——》属性——》使用旧版控制台——》重启就可以了。
细节:
程序输出采用std::cout,采用printf输出中文没有问题
默认情况只能输出小数点后六位
测试代码
#include <iomanip>
double dTest = 0.12345678;
std::cout << dTest << std::endl;
std::cout << std::setprecision(15) << dTest << std::endl;
输出结果:
0.123457
0.12345678
说明在没有指定输出位数的情况下,会对七位进行四舍五入
注意: C/C++中,有效位数不受小数点限制;flaot有效位数为6~7位; double有效位数为15~16位;