问个简单的问题,这代码有什么问题

dychenyi 2008-04-01 06:22:10
	char *str="192.168.1.1";
char *str1="192.168.1.2";
BYTE a[4]={1,2,3,4};
BYTE b[4]={2,3,4,5};

sscanf(str,"%d.%d.%d.%d",&a[0],&a[1],&a[2],&a[3]);
sscanf(str1,"%d.%d.%d.%d",&b[0],&b[1],&b[2],&b[3]);

为什么 sscanf(str1,"%d.%d.%d.%d",&b[0],&b[1],&b[2],&b[3]);这一句会出错呢 ,谢谢
...全文
150 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
sheenl 2008-04-02
  • 打赏
  • 举报
回复
为什么 sscanf(str1,"%d.%d.%d.%d",&b[0],&b[1],&b[2],&b[3]);这一句会出错呢 ,谢谢
--------------------------------
应该是 "%c.%c.%c.%c"吧
Mnky 2008-04-02
  • 打赏
  • 举报
回复
解决办法很简单,把 char *str 改成 char str[] 就行了
zeloas 2008-04-02
  • 打赏
  • 举报
回复
类型问题
Ansi C中没有BYTE这个类型,
貌似M$中BYTE是一个宏,相当于unsigned char
zeloas 2008-04-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 dychenyi 的回复:]
引用 7 楼 yao_zhuang 的回复:
问题不在于类型
你把两个指针换成数组就可以了,他们是常量指针,怎么可以改变他们的值呢?

sscanf(xx,“”,YY);本来就是从xx读到yy里啊 没对xx进行写操作啊 。
[/Quote]
Sorry 看错了
dychenyi 2008-04-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ZiSheng 的回复:]
3楼的解法是对的,你用的byte本身就是char类型,换为int
[/Quote]

唉 BYTE 不就是8bit 的int吗 ?可以放得下啊 为什么不行啊 ?
dychenyi 2008-04-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yao_zhuang 的回复:]
问题不在于类型
你把两个指针换成数组就可以了,他们是常量指针,怎么可以改变他们的值呢?
[/Quote]
sscanf(xx,“”,YY);本来就是从xx读到yy里啊 没对xx进行写操作啊 。
zeloas 2008-04-01
  • 打赏
  • 举报
回复
问题不在于类型
你把两个指针换成数组就可以了,他们是常量指针,怎么可以改变他们的值呢?
ZiSheng 2008-04-01
  • 打赏
  • 举报
回复
3楼的解法是对的,你用的byte本身就是char类型,换为int
zzzkkk666 2008-04-01
  • 打赏
  • 举报
回复
在家看不爽,需要运行环境跑一下才好,帮顶了
橘子香水 2008-04-01
  • 打赏
  • 举报
回复
是运行结果不对还是编译出错.
Supper_Jerry 2008-04-01
  • 打赏
  • 举报
回复
	char *str="192.168.1.1";
char *str1="192.168.1.2";
int a[4]={1,2,3,4};
int b[4]={2,3,4,5};

sscanf(str,"%d.%d.%d.%d",&a[0],&a[1],&a[2],&a[3]);

然后把int数组转换到byte数组
Supper_Jerry 2008-04-01
  • 打赏
  • 举报
回复
sscanf(str1,"%d.%d.%d.%d",&b[0],&b[1],&b[2],&b[3]);
这句的用法错了。你查一下sscanf
zeloas 2008-04-01
  • 打赏
  • 举报
回复
str和str1指向的常量字符串,所以不能用sscanf改变内在的值

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧