std::ifstream ifs("mydatafile.txt");
std::string line;
while(std::getline(ifs, line)) // read one line from ifs
{
std::istringstream iss(line); // access line as a stream
std::string column1;
std::string column2;
std::string column3;
iss >> column1 >> column2 >> column3; // no need to read further
// do what you will with column3
}
std::istringstream的作用是允许您将std::string视为输入流,就像常规文件一样。 iss >> column1 >> column2 >> column3将列数据读入变量。
3条答案
按热度按时间c3frrgcw1#
您可以使用
sscanf()
(看一下链接,它有一个与您需要的类似的示例)。假设将每行文本读入char数组
line
。因为你对名字和姓氏不感兴趣,所以你可以使用
%*s
,它允许 * 消费 * 行中的名字和姓氏,而且你不需要把它们赋给任何变量。下面是完成该任务的完整代码,假设您有一个名为“input.txt”的文本文件,其中包含您在问题中给出的文本。
输出:
一些链接:
sscanf()
freopen()
fgets()
pjngdqdw2#
试试这个:
输出:
eufgjt7s3#
在**C++**中,可以帮助您的工具是
std::istringstream
,其中包括:#include <sstream>
。其工作原理如下:std::istringstream
的作用是允许您将std::string
视为输入流,就像常规文件一样。iss >> column1 >> column2 >> column3
将列数据读入变量。