|
|
1
1
我建议你更多地了解 regular expressions 。为了无痛地解决您的问题,您可以使用 Boost.Regex 库,它提供了一个强大的正则表达式引擎。解决方案只有几行代码,但我鼓励您自己动手——这将是一个很好的练习。如果你仍然有问题,回来时给出一些结果,并清楚地说明你被卡住的地方。 |
|
|
2
1
您可以使用std::getline(stream、stringToReadInto、delimeter)。 我个人使用我自己的功能,其中包含一些附加功能,看起来如下:
其中“StringList”是的typedef std::矢量 ,而CharValidatorFunc是一个函数指针(实际上,std::函数允许functor和lambda支持),用于获取一个char并返回一个bool的函数。它可以这样使用:
并将返回结果: {“喵喵”、“绿色”、“蓝色”、“小猫!”} 保留了“喵喵”的内部空白,但删除了变量周围的空格、制表符和换行符,并用逗号分隔。 (CV_IS是一个函子对象,用于匹配特定的字符或作为字符串文字的特定字符集合。我还有CV_AND和CV_or用于组合字符验证器函数) 对于字符串文字,我只需要将其放入std::string()中,然后将其传递给函数,除非需要极高的性能。打破delimeters是相当容易推出您自己的-上面的功能只是根据我的项目的典型用途和要求定制的,但您可以随意修改它并自行声明。 |
|
|
3
0
如果这让其他人感到悲伤,我就是这样解决问题的:
现在,在正确绘制管道之后,可以在命令中使用LeftArg和RightArg
然后用管道连接到命令的右侧并执行
|