c++ - 读取文件并保存在istream C++中

标签 c++ istream

我是 C++ 的新手,我有这个任务来验证文件的每一行。

我必须创建一个只有一个参数的函数(const std::istream& p_is)

我的问题是如何读取文件并将缓冲区保存到基本的 istream。

我找到了如何输出它,但我不知道如何将它保存在 p_is 中

到目前为止,我的代码与我在此处找到的示例不同

    std::filebuf fb;
if (fb.open ("test.txt",std::ios::in))
  {
    std::istream File(&fb);
    while (File)
      std::cout << char(File.get());
    fb.close();
  }

这样就可以完美的在控制台输出test.txt内容了

提前致谢!

最佳答案

我想我现在明白你想做什么了。您可以轻松地将缓冲区的内容复制到另一个缓冲区 std::istream使用 operator<<() 的重载需要指向 std::streambuf 的指针:

void copy_buf(std::istream& is)
{
    if (std::ifstream in("test.txt"))
        is << in.rdbuf();                                                      /*
        ^^^^^^^^^^^^^^^^^                                                      */
}

关于c++ - 读取文件并保存在istream C++中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21609203/

相关文章:

c++ - 未定义对 Compte 的 vtable 的引用

c++ - 从 'std::istream&'类型的表达式中获取 'int'类型的引用的无效初始化

c++ - 没有匹配函数调用 'getline'

c++ - 在固定大小的数组上展开 C++ 中的循环是否有用?

c++ - 成员的返回类型中未定义模板占位符,仍然可以正常工作吗?

c++ - 这个 RLE 解码函数只解码第一个字符,我做错了什么?

c++ - 类模板 : why can't I specialize a single method for void type?

c++ - 我可以得到一个 istream 来放置而不是分配吗?

c++11 - 带有映射的结构的 ostream 运算符重载

C++ istream operator >>