【类型转换】char数组-----float

shiguojie19892 2014-01-24 09:31:22
各位老师,我接收到char[16]里存储的两组浮点数,“X-00.32 Y+00.03”
float x,y;
请问如何存储到x,y中?运算效率尽量的快,因为数据是连续的。
...全文
280 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
juhuacha456 2014-02-07
  • 打赏
  • 举报
回复
非常好非常有意义
shiguojie19892 2014-02-07
  • 打赏
  • 举报
回复
多谢各位!的
赵4老师 2014-01-24
  • 打赏
  • 举报
回复
引用 6 楼 shiguojie19892 的回复:
[quote=引用 1 楼 starytx 的回复:] 循环判断取出字符串"00.32"和"00.03"(假设你要的是这两个浮点数),然后atof
引用 4 楼 zhao4zhong1 的回复:
#include <stdio.h>
char s[17]="X-00.32  Y+00.03";
float x,y;
int main() {
    if (2==sscanf(s,"X%f%*[ \t]Y%f",&x,&y)) {
        printf("X,Y==%g,%g\n",x,y);
    } else {
        printf("Format error:%s\n",s);
    }
    return 0;
}
//X,Y==-0.32,0.03
//
sscanf和atof效率那个快呢?atof要先分别获取cx,cy后转换[/quote] 无profiler,不谈效率。
shiguojie19892 2014-01-24
  • 打赏
  • 举报
回复
引用 1 楼 starytx 的回复:
循环判断取出字符串"00.32"和"00.03"(假设你要的是这两个浮点数),然后atof
引用 4 楼 zhao4zhong1 的回复:
#include <stdio.h>
char s[17]="X-00.32  Y+00.03";
float x,y;
int main() {
    if (2==sscanf(s,"X%f%*[ \t]Y%f",&x,&y)) {
        printf("X,Y==%g,%g\n",x,y);
    } else {
        printf("Format error:%s\n",s);
    }
    return 0;
}
//X,Y==-0.32,0.03
//
sscanf和atof效率那个快呢?atof要先分别获取cx,cy后转换
YTerrenceLau 2014-01-24
  • 打赏
  • 举报
回复
回帖完了,我说的是1楼正解。
赵4老师 2014-01-24
  • 打赏
  • 举报
回复
#include <stdio.h>
char s[17]="X-00.32  Y+00.03";
float x,y;
int main() {
    if (2==sscanf(s,"X%f%*[ \t]Y%f",&x,&y)) {
        printf("X,Y==%g,%g\n",x,y);
    } else {
        printf("Format error:%s\n",s);
    }
    return 0;
}
//X,Y==-0.32,0.03
//
YTerrenceLau 2014-01-24
  • 打赏
  • 举报
回复
楼上正解,补充说明:还要关注正负号。
图灵狗 2014-01-24
  • 打赏
  • 举报
回复
连续的数据可以考虑用整数浮点法。
引用 楼主 shiguojie19892 的回复:
各位老师,我接收到char[16]里存储的两组浮点数,“X-00.32 Y+00.03” float x,y; 请问如何存储到x,y中?运算效率尽量的快,因为数据是连续的。
starytx 2014-01-24
  • 打赏
  • 举报
回复
循环判断取出字符串"00.32"和"00.03"(假设你要的是这两个浮点数),然后atof
雪米粥 2014-01-24
  • 打赏
  • 举报
回复
引用 3 楼 YTerrenceLau 的回复:
楼上正解,补充说明:还要关注正负号。
正解!
shiguojie19892 2014-01-24
  • 打赏
  • 举报
回复
引用 2 楼 turingo 的回复:
连续的数据可以考虑用整数浮点法。 [quote=引用 楼主 shiguojie19892 的回复:] 各位老师,我接收到char[16]里存储的两组浮点数,“X-00.32 Y+00.03” float x,y; 请问如何存储到x,y中?运算效率尽量的快,因为数据是连续的。
[/quote] 百度了一下,‘整数浮点法’没找到这个方法的介绍啊,能详细说一下怎么个思路么?

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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