假设我在Windows平台上有一个扩展名为.doc的文件,如何使用C++中的ofstream对象打开文件以在屏幕上输出其内容?我知道该对象可以用来以文本和二进制模式打开文件。但是我想知道是否可以打开一个.doc(甚至是.pdf)文件并读取它的内容。在C++中使用ofstream打开现有的.doc文件
3
A
回答
1
C++ std库有ifstream
类,它可以用来读取简单的文本文件,也可以用于读取二进制文件。
由您来解释文件中的这些字节。为了正确解释二进制文件,你需要知道文件的格式。
如果您想到MS Word文件,那么我会从这里开始:http://en.wikipedia.org/wiki/Office_Open_XML以了解MS Word 2007格式。
如果你想自己做一些过滤器,你可能会发现Boost Iostreams库(http://www.boost.org/doc/libs/1_52_0/libs/iostreams/doc/home.html)在某种程度上有用。
1
我从来没有真正做过这件事,但在阅读之后,我想我可能会有一个建议。 .docx格式实际上只是压缩了的XML。解压后,该文件位于word/document.xml。在程序中这样做是为了获得乐趣。
两种选择:如果您使用C++ CLR(.NET),则使用Microsoft has an SDK for you。它应该使打开Office文档变得非常容易。
否则,如果你只是使用普通的C++,你可能需要做一些额外的工作。
- 打开文件并解压使用它库像zlib
- 发现里面
- 的document.xml中文件解析的XML文档。您可能会想要为此使用某种类型的XML解析库。您将不得不查找XML的规格以了解如何获取您想要的文本。
相关问题
- 1. fprintf中和ofstream的使用,而无需打开文件
- 2. 使用ofstream打开文件时设置文件权限
- 3. 如何打开现有的doc/x文件,然后写上它?
- 4. 使用打开的xml文件格式API打开文字2003(doc)文件API
- 5. Ofstream无法打开或创建文件
- 6. Fstream doens't打开一个文件,ofstream是
- 7. 如何在Windows Phone(C#)中打开.pdf,.doc文件
- 8. 在浏览器中打开doc/docx/excel文件(Asp.net,C#)
- 9. 用我的c#应用程序打开特定文件 - 就像使用Word打开.doc文件
- 10. 在C#中使用Process.Start打开文件
- 11. 使用Google文档查看器打开文档(.doc,.pdf) - C#
- 12. .doc文件不使用C#
- 13. 有什么办法可以在Android中打开.doc文件?
- 14. 在webview上打开本地.doc文件时出现NSRangeException
- 15. ofstream不写入到C++现有文本文件的末尾
- 16. 在ansi c中使用fgets打开文件时出现错误
- 17. 使用C#打印PDF文件和Doc文件
- 18. 打开文件夹中的所有.doc文件并应用代码
- 19. vim打开现有文件
- 20. C++使用ofstream的
- 21. 为什么ofstream将无法在C++中打开文件?原因是什么?
- 22. 在c中打开文件#
- 23. 打开.doc文件直接从SharePoint
- 24. OleContainer - 从http打开doc文件?
- 25. MVC:如何打开.doc文件?
- 26. C++ - 使用ofstream在不同的目录中创建文件?
- 27. ofstream不在C++中创建文件
- 28. 在C打开文件++使用可变
- 29. 使用这行代码在过去的几个星期,动态地打开一个doc文件动态打开一个doc文件C#
- 30. 如何打开在C#在编辑模式下的Word文档文件(.DOC)/ WPF
当然,他们可以打开和阅读。但也许你有兴趣解析一个'doc'文件?您可以阅读这些位,但程序员需要了解这些位(或使用能够理解位的库)。 – Cornstalks
对于初学者,你需要使用'ifstream'而不是''ofstream' ... – ybungalobill
当你想输出二进制文件到标准输出时,你需要将它转换为base64,因为它可以保存NULL值,这将终止输出的字符串。 –