【问题标题】:How to get a specific line from a .txt (C++)如何从 .t​​xt (C++) 中获取特定行
【发布时间】:2016-05-24 02:17:02
【问题描述】:

我需要一些帮助来从名为“test.txt”的 txt 文件中获取第一行,我发现了 getline 函数,但是我不确定为什么我的代码不起作用或我需要做什么。我想从 .txt 文件中获取 first 行,但由于某种原因它会打印“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 行

【问题讨论】:

  • 如果你只想要第一行,那为什么还要循环继续读行呢?此外,line[0] 是该行的第一个字符,因此您根本没有保存任何行。
  • 啊,第一个字符很有道理。如何选择.txt的行?
  • FirstLine = line; 会将读取的行分配给 FirstLine,但使用 while 循环,您将一直这样做,直到文件结束,FirstLine 将是最后一行。

标签: c++ iostream getline


【解决方案1】:

如果你只想要第一行:

string line;
getline(File, line);

然后你的文件的第一行存储在line 中,你猜对了,字符串

获取所有行(逐行):

while(getline(File, line).good())
    //do something with line

【讨论】:

    【解决方案2】:
    string FirstLine;
    ifstream File("test.txt");
    string line;
    
    if (File)
    {
        getline(File, line);
        FirstLine = line;
        File.close();
    }
    cout << FirstLine;
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-17
      • 2016-05-29
      • 2016-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-07
      相关资源
      最近更新 更多