如何从文件中读取第一行?

10
ifstream infile;

string read_file_name("test.txt");

infile.open(read_file_name);

string sLine;

    while (!infile.eof())
    {
        getline(infile, sLine);         
        cout << sLine.data() << endl;
    }

    infile.close();

这个程序会打印文件中的所有行,但我只想打印第一行。


5
只需去掉 while 循环,并且 while (!infile.eof()) 也不正确。 - billz
1
为什么你会期望一个循环只执行一次(除非条件被设置成这样)? - chris
2个回答

20

while (!infile.eof())并不像你期望的那样工作,eof看一下一个有用的链接

对你的代码进行微小修复,应该可以工作:

  ifstream infile("test.txt");

  if (infile.good())
  {
    string sLine;
    getline(infile, sLine);
    cout << sLine << endl;
  }

不需要调用 close,因为析构函数会为您完成这个操作。 - lets_go_surfing

2
您可以尝试这样做:
ifstream infile;

string read_file_name("test.txt");

infile.open(read_file_name);

string sLine;

while (!infile.eof())
{
    infile >> sLine;
    cout << sLine.data() << endl;

}

infile.close();

这应该会逐行打印您文件中的所有行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接