【发布时间】:2013-03-08 14:17:51
【问题描述】:
我有一个简单的问题。 代码真的很短,所以我把它贴在这里
#include <stdio.h>
int main(int argc, const char * argv[])
{
long int p;
printf("FYI: address of first local varaible of main() on the function stack:%p\n",&p);
printf("Enter start address <hex notation> of dump:");
scanf("%lx",&p);
char * q;
q = (char*)p;
printf("%x\n",*q);
return 0;
}
最后一个 printf 的结果,例如是 ffffffc8。如果我只想保留最后两个怎么办:c8.我怎样才能做到这一点?我试过:
printf("%2x",*q);
和
printf("%x",*q % 256);
但两者都不起作用。有人可以帮忙吗?谢谢!
【问题讨论】:
-
stackoverflow.com/questions/30463962/printf-char-as-hex-in-c/… 可能有更多根本原因的答案——具体来说,您需要将值转换为无符号整数或添加 'hh' 说明符以将大小限制为 char (每cplusplus.com/reference/cstdio/printf)
标签: c