问题标签 [lexical-cast]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3357 浏览

c++ - 如何使用 boost lexical cast 将字符串转换为无符号短字符串?

我有一个包含端口的字符串,当我尝试创建一个 tcp 端点时,我需要它的无符号短值

抛出异常 bad lexical cast: source type value could not be interpreted as target

0 投票
1 回答
462 浏览

c++ - 基于地图类型c ++解析和转换csv

有谁知道任何库或示例将读取/写入 csv 并根据传递的地图(可能嵌套)来推断类型并填充地图。

这可能会涉及一些递归模板代码。

map<int, map< double, map< string, double > > > 期望格式为 123,93.003,BLAH,42.24 的 csv

map<Date, map< string, vector< double > > > // arbitary length vector 1/1/2013,BLAH,0.1,0.2,0.3,0.4.....0.99

谢谢。

0 投票
0 回答
850 浏览

c++ - C ++检查字符串是否为数字

我需要检查一个std::string是否是一个数字。数字是指整数或带小数点的数字(以 10 为底)。

我对long long提供我不关心的任何东西的限制感到满意。我没有boost,但复制了lexical_cast.

似乎强制转换double以验证字符串确实有效,但我想知道是否有任何我没有想到的极端情况。


编辑

浮点数

我没有使用 C++0x/C++11,所以我不能使用正则表达式来轻松验证浮点数。而且我试图不必自己解析字符串,因为这意味着我必须进行更多的单元测试以确保我没有遗漏任何东西。

有了 NaN,我知道他们有这个属性float1 != float1,但是 GCC 搞砸了。

0 投票
1 回答
1320 浏览

c++ - 提升灵浮点数解析器精度

在比较 boost::lexical_cast 和 boost 精神解析时,我注意到了一些奇怪的事情。我正在尝试将字符串解析为浮点数。由于某种原因,精神给出了非常不精确的结果。例如:当使用 lexical_cast 解析字符串“219721.03839999999”时,我得到 219721.03,这或多或少是可以的。但是当我使用精神(见下面的代码)时,我得到“219721.11”,这远非正常。知道为什么会这样吗?

0 投票
1 回答
8604 浏览

c++ - 将词法转换字符串提升为双倍

我正面临一个转换问题,希望得到您的帮助。我正在使用 gcc4 编译器,但我只能使用 gcc4。

我想将 std::string 转换为双精度。

顺便说一句,我也试过了atof,我仍然有同样的问题。有没有办法使用istringstreamwithsetprecission(2)来获得由 显示的正确值aAmount

0 投票
2 回答
2173 浏览

c++ - boost::lexical_cast int 用零填充字符串

我需要使用生成的名称创建文件。我boost::lexical_cast用来将整数转换为std::string. 是否有可能获得带有填充零的字符串?我没有c++11 tools,只有所有MSVS 2008支持的东西。

例子 :

ps 不建议使用 sprintf 请。

0 投票
2 回答
452 浏览

c++ - 什么时候应该使用 Boost 的 lexical_cast?它是最后手段吗?

Boostlexical_cast将数字(或任意对象)转换为字符串并返回。我应该尝试更多地使用它,而不是流式传输到std::stringstreams 吗?或者它更像是一种最后手段的机制?

以下是两种替代方法的一个示例:

或者

(但请注意我的问题更笼统)。

0 投票
1 回答
337 浏览

c++ - 重载运算符“>>”上的 bad_lexical_cast 异常

我为枚举重载了运算符“>>”:

我得到的输出:

抛出 'boost::exception_detail::clone_impl 的实例后调用 Hello World 终止

' what(): bad lexical cast: 源类型值不能被解释为目标

从 lexical_cast_39.hpp (1155) 抛出异常:

该运算符适用于除空字符串之外的每个值。从运算符返回的输入流与一开始的流相同。

这种问题的可接受方法是什么?谢谢!

0 投票
1 回答
149 浏览

c++ - 如何实现 Casts 实用程序命名空间

假设我生成了一个Casts名称空间,它将包含许多强制转换函数:

我真的很喜欢boost:lexical_cast方法。例如:

我的问题是,是否有任何其他可能的方法可以Casts以优雅、统一和健壮的方式实现。对我来说,理想的方法是采用原生的轻量级方法。

0 投票
2 回答
2064 浏览

c++ - 其他类数据类型的扩展 boost::lexical_cast

是否可以扩展boost::lexical_cast以处理其他数据类型,而无需实际修改这些类?

在我的例子中,我想扩展它来处理像cv::Pointand之类的东西cv::Point3,获取一个字符串分隔的坐标列表并加载它们。所以能够执行以下操作:

该类已经具有流运算符,但与andcv::Point不兼容,因此它失败了。istreamwstream

编辑

我问这个是因为我在一个带有模板函数的框架中工作,该函数get_parameter用于boost::lexical_cast将字符串(从配置文件中读取)转换为所需的数据类型。它适用于整数和浮点数,但现在我必须多次调用它才能读取 2D 或 3D 点(或更糟糕的是,系数数组)。如果能够修改 lexical_cast 来处理这些情况,那就太好了。

因此,这不是 OpenCV 特有的,我只是选择了它作为最简单的数据类型。我对通用解决方案更感兴趣。

编辑 2

这是我一直在尝试的示例应用程序:

它失败了,出现了一个漂亮的 C++ 模板错误,如下所示: