我可以使用C ++中的open()函数以二进制模式打开.xls或.PDF文件并读取其内容吗?如果没有,我如何构建一个可以读取具有这种文件格式(甚至更多)文件内容的应用程序
答案 0 :(得分:2)
是的,您可以将文件系统中的任何文件作为二进制文件打开,并且您也可以读取它(只要您的操作系统允许根据文件访问权限打开文件,并且没有其他应用程序获得锁定它等)。
接下来,您可能会问“如何解释PDF或XLS文件?”这就是他们在英格兰所说的另一条鱼。 PDF和XLS文件都不能直接“理解”。我最近查看的PDF文件库包含几十个文件,并且是几兆字节的源代码。我在Python中使用过XLS文件,代码中有几千行代码。
答案 1 :(得分:0)
简单阅读将是:
#include <iostream>
#include <fstream>
#include <algorithm>
#include <iterator>
std::vector<char> readfile(std::string const& fname)
{
std::ifstream ifs(fname.c_str(), std::ios::binary);
std::istreambuf_iterator<char> f(ifs.rdbuf()), l;
std::vector<char> bytes;
std::copy(f, l, std::back_inserter(bytes));
return bytes;
}
int main()
{
auto bytes = readfile("my.pdf");
}
答案 2 :(得分:0)
参数模式指向以下列之一开头的字符串 序列(附加字符可以遵循这些序列。):
``R&#39;&#39;打开文本文件进行阅读。流位于 文件的开头。
``R +&#39;&#39;开放阅读和写作。流位于 文件的开头。
``瓦特&#39;&#39;将文件截断为零长度或创建用于写入的文本文件。 流位于文件的开头。
``W +&#39;&#39;开放阅读和写作。如果没有,则创建该文件 存在,否则被截断。流定位于 文件的开头。
``一个&#39;&#39;开放写作。如果文件不存在,则创建该文件。该 stream位于文件的末尾。随后的写作 到文件总是会在当前文件末尾结束, 无论是否有任何干预(3)或类似的。
``一个+&#39;&#39;开放阅读和写作。如果没有,则创建该文件 存在。流位于文件的末尾。 Subse- 对文件的quent写入总是以当前的当前结束 文件结束,不论任何介入的fseek(3)或类似内容。