在C++中,如何在使用gzstream编写压缩文件时检查错误
In C++, how to check for errors when writing compressed files with gzstream?
我正在使用gzstream编写C++程序的输出。然而,有时生成的文件似乎写得很糟糕:zcat: output.txt.gz: unexpected end of file
,尽管我自己的程序没有返回错误。
因此,我想在编写文件时捕捉错误,也就是说,不必等到程序完成后再进行zcat并查看上面的错误。
这是我代码的相关部分:
ogzstream outStream;
outStream.open ("output.txt.gz");
if (! outStream.is_open()) { cerr << "error while opening" << endl; exit (1); }
for (size_t i = 0; i < vecResults.size(); ++i)
outStream << i << " " << vecResults[i] << endl;
outStream.close();
可以改进什么?用<<
写入后,我应该检查任何错误位吗?还是在关门后?如果是,我该怎么做?
(仅供参考,很难复制错误,因为它很少发生,但频繁到令人讨厌。)
您应该能够在关闭outStream.good()
之后检查它的结果,假设错误检查在内部正确实现。
或者,您可以使用exceptions(...)
成员来请求在出现错误时抛出异常。
编辑:错误位不会自动重置,所以只在最后检查它们是安全的;如果中间有什么问题,你可以在最后检查。
相关文章:
- 浏览压缩文件与游览解压缩它们
- 如何在视觉工作室中使用C++解压缩压缩文件 (.zip)
- 霍夫曼解码压缩文件
- 如何以非阻塞方式压缩文件
- 从本地代码访问apk中的压缩文件(从zip中读取zip)
- 如何将多个协议缓冲区的消息写入可附加的压缩文件中?
- 使用结构 c++ 读取压缩文件 Gzread
- 使用Qt qUnCompress功能解压缩文件
- 如何将二进制数据写入压缩文件
- 使用boost iostreams将数组读写到压缩文件中
- 压缩和解压缩文件 C++
- 在C++中,如何在使用gzstream编写压缩文件时检查错误
- 对解压缩文件(popen)的权限被拒绝
- 无法打开压缩文件
- Qt-包括DLL和压缩文件
- 如何检查 zip 文件或压缩文件是否存在
- 如何压缩文件夹使用 lzma sdk
- 在霍夫曼压缩后将代码表存储在压缩文件中,并从此表构建用于解压缩的树
- c++中的压缩文件IO
- 通过套接字发送和接收压缩文件