【发布时间】:2019-12-11 04:25:13
【问题描述】:
我使用 zlib 库来压缩字符串中的数据并获取字符串中的压缩数据。我使用 fstream 加载和卸载压缩数据。问题是有时会发生当一行写入文件时,它会变大一个字节,我不明白为什么会发生这种情况。我检查了一行压缩数据,它的大小正确,我可以在程序中从中获取解压缩数据,而无需写入文件。因为文件中多了一个字符,我无法再解压缩这些数据。当从文件中读取这样的一行时,它会相应地多一个字符,如文本编辑器中所示。
有“Sel”表示字符串大小是82。
这是我将压缩字符串放入文件的函数示例:
std::fstream file(filename, std::ios::out, std::ios::binary);
if (!file.is_open()) {
std::cout << "Unable to open file: " << filename << std::endl;
return;
}
std::stringstream someData;
...puts data in "someData"...
std::string compressedData = Compress_String(someData.str());
std::cout << "Comp string: " << compressedData << std::endl;
std::cout << "Comp size: " << compressedData.size() << std::endl;
file << compressedData;
file.close();
【问题讨论】: