如何从 .txt 获取特定行 (C++)

How to get a specific line from a .txt (C++)

提问人:AlphaAl 提问时间:2/13/2016 更新时间:2/13/2016 访问量:96

问:

我需要一些帮助从名为“test.txt”的 txt 文件中获取第一行,我已经发现了 getline 函数,但我不确定为什么我的代码不起作用或我需要做什么。我想从 .txt 文件中获取第一行,但由于某种原因它打印了“t”。如果我处理不当,请随时纠正我。这是我正在使用的代码:

string FirstLine;
ifstream File("test.txt");
string line;

if (File)
{
    while (getline(File, line))
    {
        FirstLine = line[0];
    }

    File.close();
}
cout << FirstLine;

这是 .txt 文件:

这是第 1 行

这是第 2 行

这是第 3 行

C++ IOstream 获取线

评论

0赞 crashmstr 2/13/2016
如果你只想要第一行,那为什么你有一个循环来继续阅读行呢?此外,是该行的第一个字符,因此您根本不保存任何行。line[0]
0赞 AlphaAl 2/13/2016
啊,第一个角色是有道理的。如何选择 .txt 的行?
0赞 crashmstr 2/13/2016
FirstLine = line;将读取行分配给 ,但使用 while 循环,您将一直这样做,直到文件结束,并且将是最后一行。FirstLineFirstLine

答:

2赞 user4332327 2/13/2016 #1

如果您只想要第一行:

string line;
getline(File, line);

然后,文件的第一行将存储为字符串line

要获取所有行(逐行):

while(getline(File, line).good())
    //do something with line
0赞 LarryF 2/13/2016 #2
string FirstLine;
ifstream File("test.txt");
string line;

if (File)
{
    getline(File, line);
    FirstLine = line;
    File.close();
}
cout << FirstLine;

是您需要对代码进行的最少更改,以使其执行您想执行的操作。但是,上述代码示例还有很大的改进空间。例如,为什么要创建两个字符串 , 和 ,只是传递给函数。我只是修改了您提供的内容,以突出显示错误在哪里。希望这会有所帮助...lineFirstLineFirstLinegetline()