相关疑难解决方法(0)

解析成几个向量成员

我想以递归方式解析字符串并将结果存储在一个结构中.我编写了一个可以处理一次迭代的解析器.输入格式如下:

v  1.5 2.0 2.5
v  3.0 3.5 4.0
f 1 2 3
f 4 5 6 
v  4.5 5.0 5.5
v  6.0 6.5 7.0
f 7 8 9
f 10 11 12
Run Code Online (Sandbox Code Playgroud)

问题是它只解析前4行,它在第三行遇到'v'时停止.完整的代码如下.如何修改此代码,以便将其余输入解析为同一个结构?我已经尝试将启动规则修改start = vertex >> elementsstart = *(vertex >> elements),但这只会产生巨大的编译错误.同样如此start = +(vertex >> elements).有什么想法我应该如何修改规则?

#include <iostream>
#include <sstream>
#include <fstream>

#include "boost/spirit/include/qi.hpp"
#include "boost/spirit/include/support_iso8859_1.hpp"
#include "boost/fusion/include/adapt_struct.hpp"


struct ElemParseData
{
    std::vector<float> verts;
    std::vector<unsigned int> idx;
};

BOOST_FUSION_ADAPT_STRUCT(
    ElemParseData,
    (std::vector<float>, verts)
    (std::vector<unsigned int>, idx) …
Run Code Online (Sandbox Code Playgroud)

c++ boost-spirit wavefront boost-spirit-qi

5
推荐指数
1
解决办法
1377
查看次数

标签 统计

boost-spirit ×1

boost-spirit-qi ×1

c++ ×1

wavefront ×1