我想写一个C语言程序,它是从用户处取得输入IP地址,然后我想对它做一些操作。我怎样才能在C中的位输入我试着下面的代码,但整数大小为2个字节,这使得这里的8个字节(64位)的完整地址。当使用char来扫描输入时,它会丢失输入的值。有什么方法可以输入位(我只想要32位IPv4地址只有32位,128位V6只有128位)。在C中输入IP地址
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()'函数来解析虚线四元组。 – Barmar
OT:'unsigned short int'的格式说明符应该是'%hu'。 '%d'需要一个'signed int'。 – alk
会十六进制格式对你有好处(“%x”),强迫用户将他的IP地址转换为ea070701例如(234.7.7.1)? – NiRR