【问题标题】:Extract value preceeded by a certain word in c++ output在c ++输出中提取某个单词前面的值
【发布时间】:2013-07-24 08:06:24
【问题描述】:

如果您有一个包含已知结构文本的文件,您将如何提取某个识别词前面的值?具体来说,如何从下面的文本中提取值。

CDM-nucleon micrOMEGAs amplitudes:
proton:  SI  -3.443E-10 

这是我对脚本的了解程度:

#include <string>
#include <fstream>
#include <iostream>

using namespace std;

int main()
{
string identifier;
double value;
ifstream file("output.txt");
// Commands to extract value
file.close();

return 0;
}

非常感谢。

【问题讨论】:

  • 没有人会为您完成这项工作。特别是当您的问题不清楚时。提取什么?识别词是什么?你做了什么,问题出在哪里。搜索 stackoverflow 以了解如何逐行读取文件以及如何使用正则表达式查找位置。这应该会有所帮助。

标签: c++ string output ifstream


【解决方案1】:

这取决于输出文件的复杂性和大小。所谓“复杂性”,我的意思是说,有可能找到你的识别词,而不是后面跟着你想要解析的大量和各种关键词。 对于大文件,将其加载到内存中可能是不合理的,因此可能是流式传输。

在您的特定情况下,您可能需要查看以下内容:

http://www.cplusplus.com/reference/regex/

或适合流式数据的解析器之一:

http://en.wikipedia.org/wiki/Flex_lexical_analyser

您还可以查看其他语言(例如 perl)来解析它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-14
    • 2023-02-14
    • 2016-05-02
    • 2020-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多