我是 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/