c++ - getline 与 istream_iterator

标签 c++ istream-iterator

如果您从文件中逐行输入(将行读入字符串,以进行标记化),是否应该有理由优先使用 getline 或 istream_iterator。

最佳答案

我有时(视情况而定)写一个线类,这样我就可以使用istream_iterator:

#include <string>
#include <vector>
#include <iterator>
#include <iostream>
#include <algorithm>

struct Line
{
    std::string lineData;

    operator std::string() const
    {
        return lineData;
    }
};
std::istream& operator>>(std::istream& str,Line& data)
{
    std::getline(str,data.lineData);
    return str;
}

int main()
{
     std::vector<std::string>    lines(std::istream_iterator<Line>(std::cin),
                                       std::istream_iterator<Line>());
}

关于c++ - getline 与 istream_iterator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1729772/

相关文章:

c++ - 具有参数化构造函数的抽象工厂

c++ - Switch case 语句如何实现或在内部工作?

c++ - 输入迭代器的值初始化

c++ - 简单的 istream_iterator 问题

c++ - istream_iterator 行为

c++ - 如何使 std::istream_iterator 只读到行尾?

c++ - 在后台持续运行 windows phone 8.1 应用程序

c++ - 在scanf中引用int

c++ - 为什么括号在函数指针声明中很重要?

c++ - istream_iterator 遍历二进制文件中的字节