Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在不解压缩c++;?_C++_Zlib_Xz - Fatal编程技术网

C++ 如何在不解压缩c++;?

C++ 如何在不解压缩c++;?,c++,zlib,xz,C++,Zlib,Xz,我想有效地读取xz文件,所以我认为解压缩不是一个好的选择 有没有方法可以用来读取XZFrm,而C++中没有解压缩? 我知道zlib是读取gz文件的好工具,但它不能用于xz文件 我发现我可以用vim xz文件,它显示的很好。但当我使用cpp ifstream getline时,它的代码会变得一团糟。 有人能解释一下吗?xz不是一个文本文件,它包含字节,而不是字符,因此您不能在其上使用标准输入流,只能使用fread。然而,xz是开源的,所以如果你的工具也是开源的,你可以直接获取他们的代码并根据你的需

我想有效地读取xz文件,所以我认为解压缩不是一个好的选择

有没有方法可以用来读取XZFrm,而C++中没有解压缩?

我知道zlib是读取gz文件的好工具,但它不能用于xz文件

我发现我可以用vim xz文件,它显示的很好。但当我使用cpp ifstream getline时,它的代码会变得一团糟。
有人能解释一下吗?

xz
不是一个文本文件,它包含字节,而不是字符,因此您不能在其上使用标准输入流,只能使用
fread
。然而,
xz
是开源的,所以如果你的工具也是开源的,你可以直接获取他们的代码并根据你的需要进行调整。

压缩是一个可逆的过程,将一个字节序列转换成另一个,希望更短1。减压是这个过程的逆过程。当然,如果你有一个已经压缩的字节序列,那么你必须对它进行解压缩才能恢复内容。这是无法避免的,因此一场演出的热播是不可避免的。那么答案是什么呢

有没有方法可以用来读取XZFrm,而C++中没有解压缩?

答案只是“不”。C++或不,不重要。 至于

我发现我可以用vim xz文件,它显示的很好

是的,因为vim为您解压缩引擎盖下的文件(可能在内存中)。只是没有告诉你



一个有趣的事实:数学告诉我们,对于每一个压缩算法,都存在一个输入,这样算法实际上会产生更大的输出。压缩算法基于这样一个事实,即我们压缩的内容中有一些很好的模式,例如单词。这也是为什么多次应用压缩不起作用的原因。

也许你对压缩的目的有点误解?当然,在读取实际信息之前,您需要以某种方式解压缩数据。@churill谢谢,我认为压缩文件是为了节省空间。如果可以直接阅读,那就太好了。你没有看到“压缩以节省空间”和“直接阅读”之间的冲突吗?也许可以从实现的角度研究压缩的技术细节。我发现Lempel-Ziv算法很容易理解。仔细阅读。那么我希望你确实看到了“直接读取”的问题。换言之,你的印象是你可以通过vim“直接读取”压缩文件是错误的和误导性的。您没有注意到vim确实解压缩了文件。它只是不一定告诉你。是的,它是为了节省空间。但是所有的信息都是这样编码的,占用的空间更少。注意这里编码的单词。只有通过解压缩才能恢复原始信息。举个例子:你订了一把椅子,得到了一个大包裹。你可以坐在包裹上(这就是你想要做的),或者你可以打开包裹,用里面的东西做一把真正的椅子。后者似乎更有用,对吗?