假設我在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值,這將終止輸出的字符串。 –