如何使用fstream读取特定的文件行?

时间:2016-04-13 14:03:43

标签: c++

我是c ++的新手,我有一个问题。我正在研究fstream。我有一个data.txt文件有这样的内容

  [exe1]
   1 0 2 9 3 8 4 7 5 6
[exe2]
   1 0 2 9 3 8 4 7 5 6:0
[exe3]
   23
[exe4]
   Micheal

我的问题是如何读取特定行,如第2行:

1 0 2 9 3 8 4 7 5 6.

提前致谢

1 个答案:

答案 0 :(得分:5)

如果找到你的专线的唯一方法是在其中搜索一些数据,那么你必须阅读每一行,直到找到感兴趣的一行:

std::ifstream fs("data.txt");
std::string line;
while(std::getline(fs, line)) {
   if ( line.find("[exe2]") != std::string::npos )
   {
     if ( std::getline(fs, line) ) {
       // line found
       // line should contain "1 0 2 9 3 8 4 7 5 6:0"
       break;
     }
    }
}