问题标签 [boost-tokenizer]

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 回答
147 浏览

c++ - 错误的标记化

我有这个代码:

此代码产生以下结果:

显然,第二行是错误的。hello world相反,我期待着。问题是什么?

0 投票
0 回答
214 浏览

c++ - Boost 的 tokenizer 在 windows & linux 下的不同结果

我发现 boost::tokenizer 有一些奇怪的东西。( boost version 1.53.0, 1.52.0 )

此代码在 Linux(Ubuntu 12.04.2 和 gcc 版本 4.6.3)下崩溃,在 Windows 7(VS 2010 Express)下运行良好。我要准备的字符串('line'变量)是:

linux下:

lexical_cast 崩溃了。

在 Windows 下:

工作正常。

这是正确的行为吗?

0 投票
2 回答
311 浏览

c++ - 如何在嵌套循环中匹配来自两个字符串向量的字符串值

我正在尝试在 CSV 文件中查找某些标头值的索引,以便我可以使用它们来提取文件其余部分中这些位置的数据。我将标头值添加到 amap<std::string, int>中,以便保留索引。

我有工作代码,直到我注意到如果标题是行中的最后一个值,它不匹配。最后一个标题字符串在我的嵌套循环中是空的,但在外循环中不是。

tok(row)相当于tok("column0,column1,column2")我得到这个输出的地方;

而如果它是tok("column0,column1,column2,column3")我得到的;

当我cout << cell在外循环中时,值显示正确。

为什么我cell在内部循环中失去了价值?

编辑

github和测试文件中的代码是用编译的;

并执行

我得到这个输出;

0 投票
1 回答
419 浏览

c++ - 字符串迭代器不兼容读取每一行

我有一个 std::ostringstream。我想迭代这个 std::ostringstream 的每一行。

我使用 boost::tokenizer :

在线上

我有一个“字符串迭代器不兼容”的断言错误。我已经在谷歌和 StackOverflow 上阅读过这个错误,但我很难找到我的错误。

任何人都可以帮助我吗?

非常感谢,

此致,

尼克修斯

0 投票
1 回答
334 浏览

c++ - 使用 BOOST Tokenizer 来显示分隔符并且不在引号中标记字符串

我正在使用 BOOST Tokenizer 将字符串分解为 toekn。基本上,这些令牌将用于为基于 c/c++ 的 VSL 创建编译器。我想问的是,定义的分隔符有可能是使用创建的

例如,如果我在字符串上使用 Boost 标记器,也会显示

它应该制作以下标记

另外,我如何确保它不会在引号中转换标记,例如

应转换为以下标记

0 投票
1 回答
301 浏览

c++ - boost::char_separator 的默认字符分隔符是什么(用于 boost::tokenizer)?

这个问题的答案似乎很容易通过查看 Boost 文档char_separator或谷歌搜索来获得。

但是,我在任何地方都找不到这个问题的答案:(boost::char_separator与 一起使用boost::tokenizer)的默认分隔符是什么?

谢谢!

0 投票
4 回答
1055 浏览

c++ - 如何通过分隔符标记字符串?

我需要通过分隔符标记字符串。

例如:

因为"One, Two Three,,, Four"我需要得到{"One", "Two", "Three", "Four"}.

我正在尝试使用此解决方案https://stackoverflow.com/a/55680/1034253

但我得到了错误:

boost-1_57\boost/tokenizer.hpp(62): 错误 C2228: '.begin' 的左边必须有类/结构/联合类型是 'const char *const'

0 投票
1 回答
435 浏览

c++ - 字符串迭代器不兼容 boost::tokenizer

我有一个包含 boost::tokenizer 的类的简单代码示例。

MyTokenizer.h

MyTokenizer.cpp

主文件

当我运行此示例时,它可以通过构造函数正常运行,在循环中打印预期的标记,但在调用 printTok() 时会出现此错误

在此处输入图像描述

似乎我无法在构造函数之外创建 MyTokenizer 的迭代器。

编辑

我将 printTok() 方法更改为更简单,同时仍然抛出相同的错误,现在看起来像这样。

0 投票
2 回答
627 浏览

c++ - 逗号分隔标记的向量到 const char**

我正在尝试将逗号分隔的字符串转换为 const char* 的向量。使用以下代码,预期的输出是

但我明白了

我哪里错了?

代码:

http://ideone.com/3tvnUs

编辑:借助以下答案的解决方案:(PaulMcKenzie 使用列表提供了一个更简洁的解决方案。)

0 投票
1 回答
224 浏览

c++ - boost::split 可以在只有一个令牌的列表上使用吗?

我想遍历逗号分隔的字符串列表并对每个字符串进行处理。有没有办法设置 boost::split 以将“abc,xyz”和“abc”都识别为有效输入?换句话说,如果谓词不匹配任何内容,Split 是否可以返回整个输入字符串?

或者我应该改用 boost:tokenizer 吗?