【发布时间】:2013-11-02 16:37:54
【问题描述】:
我想用 C 语言编写一个程序,该程序从用户那里获取输入 IP 地址,然后我想对其进行一些位操作。我如何在 C 中以位输入。我尝试了以下代码,但整数大小为 2 个字节,这使得此处的完整地址为 8 个字节(64 位)。当使用 char 扫描输入时,它会丢失输入的值。有什么方法可以输入位(我只想要 32 位的 32 位 IPv4 地址和 128 位的 128 位 V6)。
unsigned short int a,b,c,d;
scanf("%d.%d.%d.%d", &a,&b,&c,&d);
printf("%d\t%d\t%d\t%d\t", a, b, c, d);
提前致谢。
【问题讨论】:
-
使用
inet_addr()函数解析一个虚线四边形。 -
OT:
unsigned short int的格式说明符应为%hu。%d需要signed int。 -
十六进制格式对你有好处吗(“%x”),强制用户将他的IP地址转换为ea070701,例如(234.7.7.1)?