![]() |
1
30
大多数情况下,我使用std::istringstream和std::getline的组合(可以用来分隔单词)来获得我想要的东西。如果我能让我的配置文件看起来像: foo=1,2,3,4 这样就容易了。 文本文件如下:
你可以这样分析:
|
![]() |
2
19
这个 C++ String Toolkit Library (StrTk) 您的问题有以下解决方案:
|
![]() |
3
6
精神不是用来分析复杂结构的。它也非常擅长微解析,几乎与C+scanf代码段的紧凑性相匹配:
(我不明白为什么他们没有添加“容器”版本,如果我们可以写:
但事实上:
所以最终,对于简单的解析,我和其他人一样使用scanf。。。 |
![]() |
4
3
正则表达式通常可用于解析字符串。使用
如果有几种可能的字符串格式需要解析,比如在OP给出的示例中,可以逐个应用不同的正则表达式并查看哪一个匹配,或者编写一个正则表达式来匹配所有可能的变体,通常使用
正则表达式非常灵活,因此可以对表达式进行扩展,以允许更多的变化,例如,表达式后面有任意数量的空格和其他空格
另外,正则表达式提供了隐式验证,因为它们需要完美匹配。例如,如果
|
![]() |
5
2
我感觉到你的痛苦。我经常处理具有固定宽度字段(通过Fortran77代码输出)的文件,因此尝试以最小的麻烦加载它们总是很有趣的。就我个人而言,我想看看
注:
|
![]() |
6
1
我认为Boo.Sovil是一种描述C++代码中语法正确性的好方法。它需要一段时间来适应提神,但之后就很容易使用了。它可能没有你想要的那么简洁,但我认为它是处理简单语法的一种简便方法,它的性能可能会有问题,所以在需要速度的情况下,它可能不是一个好的选择。 |
|
7
0
我不认为提交的答案比OP提供的更简洁。此外,提交的答案会降低代码的可移植性、编译速度和阅读难度。如果有其他目标(例如某些特定的安全或速度要求),则提交的答案可能更合适,但考虑到问题中所述的目标,使用
|
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |