如何从文件中读取多行?

时间:2014-02-24 00:04:09

标签: c++

我正在编写一个从命令行获取输入文件的函数。输入文件如下所示:

11 25
1 2 3 4 5 6 7 8
1 2 3
1 3 5
1 2 2

我想在整数变量的第一行存储这两个数字。第二行存储在一个数组中。第三行和后续行存储在另一个容器中。目前我有一个程序可以从第一行读取:

void classFunctions::storeInput(const char* inputFile)
{
  std::ifstream file(inputFile);
  std::string placeholderString;
  while(!file.eof())
  {
    while(std::getline(file, placeholderString))
    {
     //Do something
    }
  }
}

但是我如何更改它以便它可以从第二行,第三行和后续行读取?

2 个答案:

答案 0 :(得分:0)

检查文本文件是否为空后,您应该拨打getline()两次并继续阅读,直至eof()

getline(file, first_line);
//proceed to process with a stringstream
getline(file, second_line);
//process
while(true) {
    string line;
    getline(file, line);
    //process
    if(file.eof()) break;
}

答案 1 :(得分:0)

第一行只是提取两个变量。对于第二行,应使用std::getline(),您可能应该使用std::istringstream并使用std::istream_iterator将行解析为数组。其余的行也需要连续调用std::getline()