读取文件并保存在 iStream C++ 中

read file and save in istream c++

本文关键字:iStream C++ 存在 保存 文件 读取      更新时间:2023-10-16

我对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();
}

这将在控制台中完美地输出测试.txt内容

提前感谢!

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

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

istream,就像在输入流中一样。你不能写信给它。您可以创建输出文件的第二个流 (ostream),或者首先创建一个追加流。

也就是说,我真的,真的怀疑你是否正确阅读了你的作业,你的要求毫无意义。