首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将字符串中的多个浮点数转换为多个浮点数?(sscanf)

如何将字符串中的多个浮点数转换为多个浮点数?(sscanf)
EN

Stack Overflow用户
提问于 2014-07-11 02:40:55
回答 2查看 1.2K关注 0票数 0

容易理解:

代码语言:javascript
运行
复制
string=" 2.34 5.21 7.22\n";

我希望获得字符串的浮点数以浮动变量:

代码语言:javascript
运行
复制
float x,y,z;
sscanf(string, " %f %f %f\n",&x,&y,&z);

它应该是这样的,但它不工作,如何正确地转换它?

-编辑--

由于这样做不起作用,让我们看看我的代码的其余部分是否有问题:

代码语言:javascript
运行
复制
#include <iostream>
#include <stdio.h>
#include <tchar.h>
#include "SerialClass.h"    // Library described above
#include <string>
using namespace std;

bool acabou(char str[]){
    for(int i=0;str[i]!='\0';i++){
        if(str[i]=='\n'){
            return true;
        }
    }
    return false;
}

int main(){
    float x,y,z;
    char buffer[256] = "";
    Serial* SP = new Serial("\\\\.\\COM5");
    if (SP->IsConnected())
        printf("Conectado com sucesso\n");
    while(SP->IsConnected()){
        char incomingData[256] = "";
        int dataLength = 256;
        int readResult = 0;
        readResult = SP->ReadData(incomingData,dataLength);
        if(readResult!=-1){
            strcat(buffer,incomingData);
            if(acabou(incomingData)){
                printf("%s",buffer);
                sscanf(buffer,"%f %f %f\n",&x,&y,&z);
                cout << x << " " << y << " " << z << endl;
                strcpy(buffer,"");
            }
        }else if(acabou(incomingData)){
            printf("%s",buffer);
            sscanf(buffer,"%f %f %f\n",&x,&y,&z);
            cout << x << " " << y << " " << z << endl;
            strcpy(buffer,"");
        }
    }
    return 0;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-11 03:38:39

代码从一开始就正确,@ code 657267的代码也在工作。

问题是在我的代码中,字符串以,作为分隔符,从十进制到整数,我做了一个简单的函数来将,更改为.,现在它可以工作了。

谢谢你的帮助。

票数 1
EN

Stack Overflow用户

发布于 2014-07-11 02:43:09

坚持使用C++

代码语言:javascript
运行
复制
std::istringstream iss{string};

float x{}, y{}, z{};

iss >> x >> y >> z;

尽管如此,假设stringchar const*类型的,那么您的代码应该按照-原样工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24689296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档