2013-04-03 69 views
1

我正在为自定义扩展名的文件编写预览处理程序。从IStream读入std :: ifstream

预览处理程序实现IInitializeWithStream接口,该接口使用在Windows资源管理器中选择的文件数据初始化IStream。

现在,我需要对这个数据流执行一些解析操作(文件中的数据是以预定义的自定义格式显示的纯文本)。

为了做到这一点,我需要在std :: ifstream对象中的数据,以便我可以很容易地使用STL来实现所需的输出。

长话短说:我需要一种方法来将数据从IStream转换/填充到std :: ifstream。

在此先感谢。

+0

我有同样的问题它流分成的std :: ostringstream。我看到了使用http://www.boost.org/doc/libs/1_43_0/libs/iostreams/doc/tutorial/container_source.html实现包装的建议。你是如何解决这个问题的? – user643011 2013-09-27 17:21:17

+0

如果我理解正确,所有你需要做的是: '是<< file.rdbuf();' – 0x499602D2 2014-01-20 19:32:53

+0

@ user643011:我使用IStream接口的Read方法来填充数据到字符缓冲区并将其流使用“<<”运算符转换成std :: ostringstream。 – 2014-02-08 14:22:22

回答

1

我用IStream接口的读取方法将数据填充到字符缓冲区和使用“< <”操作符