Utilisation des int 64 dans la décompression

This commit is contained in:
Mattéo Delabre 2016-11-20 01:54:46 +01:00
parent deb22164d4
commit e013dca1bc
1 changed files with 5 additions and 3 deletions

View File

@ -3,11 +3,13 @@
#include "display.h" #include "display.h"
#include "decompress.h" #include "decompress.h"
#include <stdint.h>
void decompress(FILE* source, FILE* dest) { void decompress(FILE* source, FILE* dest) {
// ÉTAPE 1 : lecture du nombre de caractères originel. Cela permet // ÉTAPE 1 : lecture du nombre de caractères originel. Cela permet
// d'ignorer les bits d'alignement en fin de fichier // d'ignorer les bits d'alignement en fin de fichier
size_t original_count = 0; uint64_t original_count = 0;
fread(&original_count, sizeof(size_t), 1, source); fread(&original_count, sizeof(original_count), 1, source);
printVerbose("Lecture du nombre de caractères : %d.\n", original_count); printVerbose("Lecture du nombre de caractères : %d.\n", original_count);
// ÉTAPE 2 : reconstruction de l'arbre à partir des données linéarisées // ÉTAPE 2 : reconstruction de l'arbre à partir des données linéarisées
@ -23,7 +25,7 @@ void decompress(FILE* source, FILE* dest) {
// à l'arbre de Huffman reconstitué // à l'arbre de Huffman reconstitué
printVerbose("\nLecture et interprétation des données compressées.\n"); printVerbose("\nLecture et interprétation des données compressées.\n");
char next_bit = getBuffer(&input); char next_bit = getBuffer(&input);
size_t wrote_count = 0; uint64_t wrote_count = 0;
while (next_bit != -1 && wrote_count < original_count) { while (next_bit != -1 && wrote_count < original_count) {
HufTree current = tree; HufTree current = tree;