c++ - 通过 C++ 从标准输出中的一些打印数据中提取特定值

标签 c++ regex

<分区>

我在基于 C++ 的 Linux 中使用模拟器 (ndnSIM)。完成一些任务后,它通过以下命令每秒在 stdout 中打印输出:

L3RateTracer::InstallAll ("-", Seconds (1));。这是常量,我无法更改其格式以在字符串或数组中打印输出。我想从 stdout 的输出中提取特定数据。例如,第1秒的输出在stdout中打印如下(每个特征之间的空格是Tab):

1   C1  0   1   Out1    268 335 0
1   C1  0   2   Out2    0   0   0
1   C2  1   1   Out1    0   0   0
1   R3  1   1   Out2    317 0   0
1   P1  -1  all Sat1    268 0   335
1   C1  -1  all Tim1    0   0   0
1   R2  1   9   Out1    0   0   0

我需要为第 2 列中的“R3”和第 5 列中的“Out2”的输出提取第 6 列数据。在此示例中,所需的值为“317”。

如何通过 C++ 从 stdout 的打印输出中每秒提取这个值 (=317)?

最佳答案

如果不需要,您不想为此使用正则表达式或任何东西。

您需要做的是读入文件,按制表符和/或空格拆分(我不知道),然后检索您想要的元素。

在此处阅读有关如何拆分字符串的信息: Split a string in C++?

要从 stdin 中读取,这就是您想要执行的操作,您需要执行以下操作:

std::string line;
std::getline(std::cin, line);

与上面的字符串拆分方法结合使用时,效果会非常好。 然后您将能够 ToolThatPrintsThings |你的新工具

关于c++ - 通过 C++ 从标准输出中的一些打印数据中提取特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20262437/

相关文章:

Java正则表达式将带引号的字符串与嵌入的转义引号相匹配

regex - POSIX正则表达式: Excluding a word in an expression?

PHP RegEx 指定了我想要的字符?

java - hadoop 关于如何处理日志的建议

c++ - 线段树的构建

c++ - 我在哪里可以阅读更多有关 C++ 中的内存结构的信息?

c++ - C++中多线程快速排序期间的段错误

c++ - 使用 Xlib 更改绘图颜色

arrays - Perl:从数组中打开文件并逐一读取

c++ - "if (var)"使用数字转换而不是 bool 值