51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1669|回复: 5
打印 上一主题 下一主题

[原创] 关于一个字符转换函数的疑问

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-6-10 14:41:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
先看一段代码:
char *tmp;
int i=0,rc,n;
while(1)
{
lrs_receive_ex("socket2", "buf1", "NumberOfBytesToRecv=2", LrsLastArg);

  lrs_save_param("socket2", NULL,"p",0,-1);

  tmp = lr_eval_string("<p>");

  rc=lrs_hex_string_to_int(tmp,8,&i);
if(rc==0)n=0;
else n=1;

}
假设 p=\x01V   (实际上p=\x01\x56, 56显示为v,是lr显示问题,也顺带求高手解决一下,如何正确的得到\x01\x56,然后转换为整型342).上面是循环接收数据,每次两个字节,假设每次都是p。那么rc的值肯定为9013,解释为:无法转换。
问题:无线循环大概10次左右,n的值会变成0.。。。。。也就是转换成功。。lrs_hex_string_to_int 是不是还有什么使用注意事项啊?还是我使用不对?跪求高手解决。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2009-6-10 15:11:28 | 只看该作者
对了。。那个 p 的值 不止是显示问题,用lr_eval_string("<p>")得到的p的值也是\x01v,实际上p应该是\x01\x56
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-6-10 16:32:31 | 只看该作者
继续在线等。。。等到下班。。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2009-6-19 14:54:13 | 只看该作者
关于那个显示问题,lr会主动将65~90和 97~122之间的ASCII码转换成字符A~Z和a~z。。。。。能不能让他不转换啊?有人知道怎么做么??继续等待,寻找。。。实验中。。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2009-6-19 16:37:54 | 只看该作者
我发现没辙了。。。他自动转换的。。最后的办法就是一个字节一个字节的收,然后根据需要,自己转换成 ASCII码,使用sprintf函数。。这样就可以得到包头的大小了。。。。关于那个 转换函数lrs_hex_string_to_int 的问题。。。我只能说。。也许我用的lr 是盗版。。。请正版用户能试验下,给个结论。。呵呵。。。 此问题就这么结束吧。。。我是想不到更好的办法解决了。。如果高手有兴趣可以研究哈共享一下。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2009-6-19 17:22:07 | 只看该作者
用C的库函数就是了,如果还不行的话只能说明lr的C解释器有些问题。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-27 09:46 , Processed in 0.063354 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表