当前位置:  技术问答>linux和unix

有关sscanf问题 熟悉的请进

    来源: 互联网  发布时间:2015-04-20

    本文导语:  u_char ip1[4]; u_char ip2[4]; sscanf("a8:7a:00:01", "%x:%x:%x:%x", (u_int*)&(ip1[0]), (u_int*)&(ip1[1]), (u_int*)&(ip1[2]), (u_int*)&(ip1[3])); /*语句1*/ sscanf("a8:7a:00:01", "%x:%x:%x:%x", (u_int*)&(ip2[0]), (u_int*)&(ip2[1]), (u_int*)&(ip2[2]), (u_int*)&(ip2[3]));...

u_char ip1[4];
u_char ip2[4];

sscanf("a8:7a:00:01", "%x:%x:%x:%x", (u_int*)&(ip1[0]), (u_int*)&(ip1[1]), (u_int*)&(ip1[2]), (u_int*)&(ip1[3])); /*语句1*/

sscanf("a8:7a:00:01", "%x:%x:%x:%x", (u_int*)&(ip2[0]), (u_int*)&(ip2[1]), (u_int*)&(ip2[2]), (u_int*)&(ip2[3])); /*语句2*/

当把语句2注释掉语句1执行正确
ip1 内容为a8 7a 00 01
去掉语句2的注释语句1执行完后
ip1 内容为00 00 00 01

为什么? 有什么使用错误?

|
%x希望的是一个int空间,并不是说把char*强制转换为int*就可以了,需要真正的int大小的存储空间。所以语句1已经覆盖了ip2的空间,语句2再次使用ip2,当然不对了。
这里针对的是你问的为什么,不是说没有语句2语句1就是对的。完全不对。

|
使用int数组,然后再复制到u_char数组。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • ​有关Docker的八个令人难以置信的事实
  • 有关内码转换(跟HttpServletRequest有关)
  • 求有关png图像处理的libpng库的有关中文资料
  • 大家推荐一下有关LINUX7有关的网络编程的书。最好是比较全面的!比较经典的。
  • 求教有关smartupload的问题,有关就给分!!
  • 有关KDevelop-3.0.4-0.1.i386.rpm的有关软件包
  • 有关在sco unix5.0.4下有关网卡设置的问题(非常急,高分相送)
  • 有关snmp的一个很菜,但是困扰了我很久的问题,有关工作原理的,望大家赐教
  • 有关KDevelop编程的资料
  • 有关集群与数据同步
  • 请教有关英文简历方面的词句!
  • 有关报表打印(在JAVA,WEB下应用)急用!
  • 请各位大哥告知JAVA中消息机制的有关资料,拜托!
  • 有关cocoon的问题??
  • 在哪里可以弄到有关tomcat配置方面的资料? iis7站长之家
  • 我想看看有关Linux和Unix的源码,有什么好的建议
  • 有关J2ME的帮助文档!
  • 100分求助 能不能提供一些有关图像分割的算法和实现代码!谢谢
  • 在哪里可以弄到有关tomcat配置方面的资料?
  • Helper! 有关Jbuilder使用问题???
  • 有关swing的问题,请高手回答


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3