读取特定的行和列 C++

Posted

技术标签:

【中文标题】读取特定的行和列 C++【英文标题】:Read a specific line and column C++ 【发布时间】:2020-12-29 01:13:42 【问题描述】:

我有一个 .txt 文件,其中包含:

Gabriel 18 2002
Joseph 89 1931

如何读取第一行的最后一列?喜欢2002

我不知道如何用 C++ 做到这一点,在 Shell 编程中有 sed 和 awk

【问题讨论】:

您将学习如何做到这一点by following the practice examples in any C++ textbook。不幸的是,*** 不是 C++ 教科书的替代品,因此您会被定向到您的教科书以获取更多信息。 我会说一个好的c++解决方案与c不兼容。 【参考方案1】:

在 C++ 中,您通常会通过读取整行、查找(例如)行中的最后一个空格或制表符,然后创建一个包含其后数据的子字符串:

std::getline(infile, line);

int pos = line.find_last_of(" \t");
std::string last_column;

if (pos == std::string::npos) 
    // wasn't found--process entire string
    last_column = line;
else
    last_column = line.substr(pos+1);

您可能还需要处理(至少)一个细节。您可能需要处理带有尾随空格字符的字符串。例如,如果它包含"Gabriel 18 2002 "find_last_of 将找到该尾随空格,并将其后面的内容(无)视为最后一列。如果这在您的输入中可行,您可能需要添加一个 trim 函数来删除任何尾随空格,然后再尝试查找最后一列。

【讨论】:

以上是关于读取特定的行和列 C++的主要内容,如果未能解决你的问题,请参考以下文章

从 NumPy 数组中选择特定的行和列

从 SQL 数据库中选择特定的行和列

r shiny - DataTableOutput - 颜色特定的行和列

R将特定的行和列乘以常数

如何将特定的行和列值乘以常数来创建新列?

如何转换由 | 分隔的顺序数据并且在 pyspark 中的行和列中没有换行符