【问题标题】:I'm curious of the implementation of std::getline()我很好奇 std::getline() 的实现
【发布时间】:2018-04-20 10:03:59
【问题描述】:

我正在使用std::getline 读取一个.txt 文件。 我是这样编码的,我对std::getline()的返回值非常好奇。

file 是一个ifstream 变量。)

while(!file.eof())
{
    string line;
    getline(file, line);
    cout<<line<<endl;
}

所以,我想知道为什么getline 可以获取文件中的所有行。 getline 有迭代器吗? 我想知道它的文件光标是如何移动的。

【问题讨论】:

  • 看到这个cplusplus.com/reference/istream/istream/getline 一切都在那里。
  • 要知道一个方法是什么,你应该阅读文档,要知道它是如何做到的,你需要查看源代码,不知道你还期望什么作为答案......跨度>
  • getline 没有“文件位置”,但ifstream 有。
  • std::getline() 总是只读取一行文本。由于 while 循环,您的代码片段将打印整个文件内容。

标签: c++ file std ifstream getline


【解决方案1】:

第二次阅读您的问题后,我想我知道问题是关于什么的(..也许...)

getline 不知道您在文件中的位置,那就是流作业。 getline 只是从当前位置读取,直到遇到分隔符。 getline 不需要跟踪文件中的当前位置,因为该簿记是由 ifstream 完成的。

【讨论】:

    猜你喜欢
    • 2012-04-01
    • 2015-10-19
    • 1970-01-01
    • 2012-12-10
    • 2020-09-03
    • 2021-09-10
    • 1970-01-01
    • 2011-10-12
    • 2015-09-14
    相关资源
    最近更新 更多