gpt4 book ai didi

c++ - C++ 中逗号分隔的 float

转载 作者:太空狗 更新时间:2023-10-29 20:10:48 25 4
gpt4 key购买 nike

我正在尝试分隔数字列表,例如:34,45,12.3,100,34.6,50

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

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

int main()
{
std::string str = "34,45,12.3,100,34.6,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

基本上上面的代码当它看到一个点 '.' 时,它的行为就好像它是一个逗号。

有什么想法吗?

最佳答案

您应该使用 float 并将代码更改为使用 float 而不是整数:

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

int main()
{
std::string str = "34,45,12.3,100,34.6,50";
std::vector<float> vect;

std::stringstream ss(str);

float 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;

}

关于c++ - C++ 中逗号分隔的 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36758821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com