加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

逗号在C中分隔浮动

发布时间:2020-12-16 10:02:29 所属栏目:百科 来源:网络整理
导读:我试图分开一个数字列表,如:34,45,12.3,100,34.6,50 我只能在没有这样的小数的情况下才能这样做: #include vector#include string#include sstream#include iostreamint main(){ std::string str = "34,50"; std::vectorint vect; std::stringstream ss(st
我试图分开一个数字列表,如:34,45,12.3,100,34.6,50

我只能在没有这样的小数的情况下才能这样做:

#include <vector>
#include <string>
#include <sstream>
#include <iostream>

int main()
{
    std::string str = "34,50";
    std::vector<int> vect;

    std::stringstream ss(str);

    int i;

    while (ss >> i)
    {
        vect.push_back(i);

        if (ss.peek() == ',')
            ss.ignore();
    }

    for (i=0; i< vect.size(); i++)
        std::cout << vect.at(i)<<std::endl;

}

这里的问题是小数.以上将产生:

34 45 12 3 100 34 6 50

它应该产生:

34 45 12.3 100 34.6 50

基本上是上面的代码,当它看到一个点’.’它就好像是一个逗号.

有任何想法吗?

解决方法

我认为你的代码将12.3解释为两个不同的数字,因为你没有将这个数字声明为浮点数.向量将所有字符串保存为整数,而不是浮点数.如果您将向量声明为浮点数而不是整数,那么您的问题应该得到解决

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读