字符数组用printf函数16进制输出格式?解决方案
字符数组用printf函数16进制输出格式?
WinHex截图:

内存映射文件的方式得到起始地址的指针:ptr_File = (char*)pbFile;
目的:按照 ”53 FF 00 F0 .......“的格式输出到屏幕上。
自己写的程序,有错误希望大家帮忙看看,改改?
输出结果是:
输出结果和预期的(按照 ”53 FF 00 F0 .......“的格式输出到屏幕上)不一样?为什么?谢谢。。
问题2: 如果我想ptr_File[K]==00 时作为判定条件。if(这怎么写?)
这些知识了解的很少。。谢谢大家帮忙.。。
------解决思路----------------------
%mx, 之类的格式输出,输出宽度不够,忽略输出宽度,直接全部输出
在输出前,转换为无符号类型,可以避免这种问题,,,,
所有较短整型,在调用 printf 之类的输出流函数的时候,会转换为int 类型,
而 char 类型缺省实现,并不是 unsigned char,通常是 signed char;
转化为int 的时候,会做符号位扩展
WinHex截图:
内存映射文件的方式得到起始地址的指针:ptr_File = (char*)pbFile;
目的:按照 ”53 FF 00 F0 .......“的格式输出到屏幕上。
自己写的程序,有错误希望大家帮忙看看,改改?
for(int K=0;K<10;K++)
{
printf("ptr_File[K]=%X\n",ptr_File[K]);
Sleep(2000);
}
输出结果是:
输出结果和预期的(按照 ”53 FF 00 F0 .......“的格式输出到屏幕上)不一样?为什么?谢谢。。
问题2: 如果我想ptr_File[K]==00 时作为判定条件。if(这怎么写?)
这些知识了解的很少。。谢谢大家帮忙.。。
------解决思路----------------------
%mx, 之类的格式输出,输出宽度不够,忽略输出宽度,直接全部输出
在输出前,转换为无符号类型,可以避免这种问题,,,,
所有较短整型,在调用 printf 之类的输出流函数的时候,会转换为int 类型,
而 char 类型缺省实现,并不是 unsigned char,通常是 signed char;
转化为int 的时候,会做符号位扩展