字符数组用printf函数16进制输出格式

C语言 码拜 8年前 (2016-04-01) 1420次浏览
WinHex截图:
字符数组用printf函数16进制输出格式
内存映射文件的方式得到起始地址的指针: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);
	}

输出结果是:字符数组用printf函数16进制输出格式
输出结果和预期的(按照 ”53 FF 00 F0 …….“的格式输出到屏幕上)不一样?为什么?谢谢。
问题2: 假如本人想ptr_File[K]==00 时作为判定条件。if(这怎么写?
这些知识了解的很少。谢谢大家帮忙.。

解决方案

20

%mx, 之类的格式输出,输出宽度不够,忽略输出宽度,直接全部输出
在输出前,转换为无符号类型,可以避免这种问题,,,,
全部较短整型,在调用 printf 之类的输出流函数的时候,会转换为int 类型,
而 char 类型缺省实现,并不是 unsigned char,通常是 signed char;
转化为int 的时候,会做符号位扩展

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明字符数组用printf函数16进制输出格式
喜欢 (0)
[1034331897@qq.com]
分享 (0)