楼主你好!
这个函数char FAR * inet_ntoa( struct in_addr in)
功能:将一个IP转换成一个互联网标准点分格式的字符串。
你可以这样做:
先定义个sockaddr_in p
然后给p.sin_addr.s_addr=0xfeff0032
再定义个字符指针char *a用来存放转后的字符串
最后使用a=inet_ntoa(p.sin_addr.saddr)
下面是我写的简单的测试程序:
下面是运行的结果:
提醒下:
p.sin_addr.s_addr=0xfeff0032这里可能涉及网络字节转换,需要用到ntohl()函数,具体情况得看你的这个0xfeff0032到底是网络字节的ip整数,还是你自己主机上的ip整数。我这把它看成是主机上的ip整数!
希望的回答对你有帮助!
我可以提供一个思路可行与否可以自己决定:如果是单纯的输出的话可以将这个整形数转换为字符串,然后利用字符串的输出方法在 *** 作系统里输出。另外,不同的编译器会有一些差异。LONGLONG其实就是int64类型。在winnt.h可以看到:
typedef __int64 LONGLONG
所以要想输出就要看__int64使用什么格式符了。通过查MSDN中,发现是:I64 。
在格式化输出则还需要结合一个d,即%I64d 。对于无符号的ULONGLONG,则是%I64u
1)字符串类型转化为整数型(Integer),还是字符串类型(String)转化为Double类型,这在java里面有非常好的内部函数,很easy的事情;(2)但是在c里面没有Integer Double等包装类,由char[]数组转化为整数型就变得不那么简单了,atoi() itoa()在widows下面有,但是网上说linux 下好像没有 itoa() 函数,用 sprintf() 好了,但是本人测试了一下sprintf() sscanf()的效率很低。
(3)所以自己手动实现了一下atoi()(字符串转整数) itoa(整数转字符串)两个函数,有哪里不对的地方,大家指正。
(4)我也幼稚过 请看 当初写的关于int -->string 的 blog
(插入———— begin)
(0) 在区间(0,1)上任取三个数,则这三个数之和小于1的概率为?答案是1/6,怎么计算的,求详细解答?
设所取的三个数分别为 x、y、z ,则 0<x<1,0<y<1,0<z<1 ,
满足上述条件的点 P(x,y,z)构成一个棱长为 1 的正方体,体积为 V=1*1*1=1 ,
满足 x+y+z=1 的点是分别过(1,0,0)、(0,1,0)、(0,0,1)的平面,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)