逗号在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解释为两个不同的数字,因为你没有将这个数字声明为浮点数.向量将所有字符串保存为整数,而不是浮点数.如果您将向量声明为浮点数而不是整数,那么您的问题应该得到解决
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |