首页 > 试题广场 >

编写程序hex2dd.c,将它的十六进制参数转换为点分十进制

[问答题]
编写程序hex2dd.c,将它的十六进制参数转换为点分十进制串并打印出结果。  例如
linux> . /hex2dd 0x8002c2f2
128.2. 194.242

#include <stdio.h>
#include <stdlib.h>
#include <arpa/inet.h>

int main(int argc, char** argv)
{
    struct in_addr inaddr;
    unsigned int addr;

    if(argc != 2)
    {
        fprintf(stderr, "usage: %s <hex number>\n", argv[0]);
        exit(0);
    }
    sscanf(argv[1], "%x", &addr);
    inaddr.s_addr = htonl(addr);
    printf("%s\n", inet_ntoa(inaddr));

    exit(0);
}

发表于 2022-01-21 10:56:42 回复(0)