-4

我只是在浏览一些编码的东西,并注意到了这段代码:

int main(int argc,char** argv)
{
  ifstream file;
  string lineBuffer;
  file.open(argv[1]) ;  
  while (!file.eof()) 
  {
     getline(file, lineBuffer);
     if (lineBuffer.length() == 0)
       continue; //ignore all empty lines
     else 
     {
        //do your code here
     }
  }
  return 0;
}

lineBuffer在网上搜索了 a 的概念,但没有找到相关的答案。谁能帮我理解如何lineBuffer逐行读取文件?

4

2 回答 2

2
string lineBuffer;

这是一个名为 的变量lineBuffer。这不是一个需要理解的概念,它不读取文件,它只是一个带有名称的字符串,它可以很容易地被调用:

string fred;

但是因为它是作为一个缓冲区来保存每一行文本的,所以调用它更明智和有帮助lineBuffer

无论您在哪里找到该代码,都不要再阅读它了,该代码是由不太了解 C++ 的人破坏和编写的。这部分坏了:

while (!file.eof()) 
{
   getline(file, lineBuffer);

应该这样做:

while (getline(file, lineBuffer))
{
于 2013-02-17T21:52:39.303 回答
0

lineBuffer是一个字符串,您要求 C++ 在其中放置它读取的行。一旦该行在该字符串中,他们检查该行中是否有任何内容,如果没有,则跳过处理它。

于 2013-02-17T21:46:49.770 回答