std有个函数叫做getline,它的作用是从输入文件中读取每一行,并且将该行存入一个字符串中,每一行用换行符(\n)识别。
它的原型是,
istream& getline (istream& is, string& str);
如果想遍历某个输入文本文件,可以写如下代码:
#include <fstream>
#include <string>
#include <iostream>
using namespace std;
ifstream input_file("input.txt");
string single_line;
while(getline(input_file, single_line)) {
cout << single_line << endl;
}
当遇到文件结尾时,该函数自动停止提取字符串,则相应的while循环条件判断为假,跳出循环。
下一步是挑出那些符合一定模式的行,比方说挑出所有包含一个子串的行。这时,要用到string类的find函数。
if(single_line.find("node id") != string::npos){
//perform operations
}
转载于:https://blog.51cto.com/11190017/1761975