C++ stream.pdf错误
可能重复:C++ stream.pdf错误,c++,ifstream,C++,Ifstream,可能重复: std::string fil=“/home/sensor.pdf”; 标准::ifstream t(fil.c_str()); if(t) { 字符串res; 弦线; while(getline(t,line,'\n')) { res=res+行; } std::字符串p; p=((重新解释铸造(res.c_str())、res.size()); std::字符串f_data=p; char*token=strtok(const_cast(fil.c_str()),“/”; st
std::string fil=“/home/sensor.pdf”;
标准::ifstream t(fil.c_str());
if(t)
{
字符串res;
弦线;
while(getline(t,line,'\n'))
{
res=res+行;
}
std::字符串p;
p=((重新解释铸造(res.c_str())、res.size());
std::字符串f_data=p;
char*token=strtok(const_cast(fil.c_str()),“/”;
std::字符串名;
std::向量值;
while(令牌!=NULL)
{
名称=令牌;
令牌=strtok(空,“/”;
}
std::strig f_name=名称;
}
当我尝试加载.pdf文件时,出现了一个错误“无法读取.pdf已损坏”。为什么?此代码适用于.txt文件和.cpp文件。我已经测试过了。我目前在Ubuntu C++代码中工作。我还使用了base_64编码/解码,因为这是一个请求。尝试使用以下方法打开:
ifstream file ("/home/sensor.pdf", ios::in|ios::binary);
试试这个:
我在几个不同的地方看到了它的推荐,包括几个不同的SO问题——但他们给出的只是链接
这是一个免费的、开放的PDF阅读资源库。这可能不是你想要的那么容易,但我认为这是你想要的那么容易,而且是免费的
它也是多平台的,因此应该可以在UNIX和windows上工作。您有权读取该文件吗?而且您可能不应该尝试在没有二进制标志和使用
getline
的情况下读取二进制文件。或者使用c_str()
是,我有权读取该文件。我哪里错了?@sunset你不能修改那样的二进制文件,你完全错了。你需要找到一个PDF库并使用它。你知道PDF文件不是纯文本吗?他们有一个非常具体的格式,必须遵循?好的。我将把它添加到我的代码中。除了getline,我还应该使用什么来保留换行符?你有什么建议吗?谢谢。明显的误差仍然是一样的。PDF文件已损坏。:(@sunset就像我说的,你做错了,只有特制的PDF库才能帮助你。@sunset看到这个:好的,如果它仍然显示已损坏,那么我的尝试没有帮助-很抱歉。
ifstream file ("/home/sensor.pdf", ios::in|ios::binary);