我是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内容
提前感谢!
答案 0 :(得分:1)
istream
,与输入流一样。你不能写信给它。您可以创建第二个流到输出文件(ostream
),或者首先创建一个追加流。
那就是说,我真的非常怀疑你是否正确地阅读了你的作业,你的要求毫无意义。
答案 1 :(得分:1)
我想我现在明白你要做什么了。您可以使用指向std::istream
的指针operator<<()
的重载轻松地将缓冲区的内容复制到另一个std::streambuf
:
void copy_buf(std::istream& is)
{
if (std::ifstream in("test.txt"))
is << in.rdbuf(); /*
^^^^^^^^^^^^^^^^^ */
}