const char 与 NSString的问题 或者 是其他问题

linux_fay 2011-03-14 04:30:20
求救~
总是求救,没办法,本人笨,资料都不太懂找!各位好心人,浏览了就给点建议撒~ 省得我每次提问,心都拔凉拔凉的!


NSString *stringToSend = NSStringFromCGPoint(point);
const char *data = [StringToSend UTF8String];
send(CFSocketGetNative(Socket), data,strlen(data)+1,0);

这边输出的结果的形式是这样的:{x,y}
但我要的是m_x_y形式的,我想问一下,要怎么转换?

后来的想法是这样的:
stringToSend = [NSString stringWithFormat:@"m_%i_%i",point.x,point.y];
const char *data = [StringToSend UTF8String];
send(CFSocketGetNative(Socket), data,strlen(data)+1, 0);

可是这样不能正确的获得point的值? 这是为什么呢?
...全文
514 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
linux_fay 2011-03-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 nicktang 的回复:]
使用
stringToSend = [NSString stringWithFormat:@"m_%f_%f",point.x,point.y];
会有一个“缺点”,就是小数点后自动补齐6位,比如,如果x=10.0,那么输出结果是10.000000,这个可能不是你想要的,那么把f换成g吧,看看效果,
[/Quote]确实是换成%g就行了,谢谢!
linux_fay 2011-03-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ultrapro 的回复:]
point.x,point.y 值对么,stringToSend 呢?
[/Quote]

不对 应该就像你楼下说的,是%i的问题, 因为我一直都觉得这样转换是没错的。
linux_fay 2011-03-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 nicktang 的回复:]
使用
stringToSend = [NSString stringWithFormat:@"m_%f_%f",point.x,point.y];
会有一个“缺点”,就是小数点后自动补齐6位,比如,如果x=10.0,那么输出结果是10.000000,这个可能不是你想要的,那么把f换成g吧,看看效果,
[/Quote]
谢谢哈~ 明天再看看是什么效果
NickTang 2011-03-14
  • 打赏
  • 举报
回复
使用
stringToSend = [NSString stringWithFormat:@"m_%f_%f",point.x,point.y];
会有一个“缺点”,就是小数点后自动补齐6位,比如,如果x=10.0,那么输出结果是10.000000,这个可能不是你想要的,那么把f换成g吧,看看效果,
NickTang 2011-03-14
  • 打赏
  • 举报
回复
stringToSend = [NSString stringWithFormat:@"m_%i_%i",point.x,point.y];
换成
stringToSend = [NSString stringWithFormat:@"m_%f_%f",point.x,point.y];
你在xcode中右键单击CGPoint,选择JUMP to defination,你会看到其中两个变量X,y是CGFloat类型,就是浮点型,不是整形,那么在格式化输出的时候不能使用%i,而应该使用%f,
当然如果你希望格式化后结果是整形,那么请使用强制转换,
stringToSend = [NSString stringWithFormat:@"m_%i_%i",(int)point.x,(int)point.y];
儿大不由爷 2011-03-14
  • 打赏
  • 举报
回复
point.x,point.y 值对么,stringToSend 呢?

29,027

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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