gpt4 book ai didi

c - 使用Windows GUI输入十进制值并显示相应的十六进制值

转载 作者:行者123 更新时间:2023-11-30 19:49:19 25 4
gpt4 key购买 nike

如何从 C 语言的 Windows API 设计中的文本框中检索输入的整数值,将其转换为字符串,然后通过 C 语言的静态标签以十六进制数字显示这些值。

代码:

    GetWindowText(hwndtext1, hexval, 256);

for (i = sizeof(hexval); i >= 0; i--)
{
buf[i] = atoll(hexval);

ulltoa(buf[i], szBuffer, 16);
SetWindowText(hwndStatic3, szBuffer);

}

--------编辑------我希望能够根据十进制输入显示十六进制数字。因此,在用 c 开发的 GUI 上,我可以在文本框中写入十进制数字,并且我想在单独的文本框中显示十进制的十六进制值。

-------------编辑-----------------

我稍微修改了代码,现在只显示十六进制数的最后一个字节。

例如。如果十进制输入是 2000...则十六进制输出仅显示 d0。当正确的十六进制输出应该是 7d0 时。

最佳答案

该函数将整数值转换为 0x0 格式的十六进制字符串。第一个 int 是您的数字,第二个实际上需要一个字符(通常为“a”或“A”)来确定 10 到 15 个字符。

char *dtox(int d, int c){
static char buf[80];
if (0==d)return "0x0";
int p=0;
c-=10;
if (0>d) { buf[p++]='-'; d=-d;}
buf[p++]='0';buf[p++]='x';
unsigned int i=1<<28;
while (i>d) i/=16;
while (0<i){
((d/i)>9) ? (buf[p++]=(c+(d/i))) : (buf[p++]=('0'+(d/i)));
if (i<=d) d=d%i;
i/=16;
}
buf[p]=0;
return buf;
}

我只是发布这个,因为 itoa 是一个非标准函数,真正的问题可能是传递 buf[256] (一个 char 值)而不是你的函数期望的 buf (一个 char 数组,又名字符串)

关于c - 使用Windows GUI输入十进制值并显示相应的十六进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14923188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com