voila mon sujet:
Réaliser un programme en C++ permettant la compression d'un fichier texte fourni en donnée par suppression des caractères blancs.
Rechercher des suites de blancs ou de caractères nuls. Lorsqu'une séquence de blancs est rencontrée, elle est remplacée par un couple de caractères ordonnés: le premier est un code spécial indiquant qu'il s'agit d'une répétition, le second est un compteur du nombre de blancs.
è Afficher le fichier texte compressé.
è Afficher la taille mémoire allouée aux fichiers compressé et non compressé ainsi que le Gain de Compression.
J'ai commencé à pondre du code mais ca ne marche pas des masses.
voila mon code:
//*********** BIBLIOTHEQUES *********** **************
#include <stdio.h>
#include <io.h>
#include <conio.h>
#include <string.h>
//*********** PROTOTYPES DES FONCTIONS **************
//*********** VARIABLES GLOBALES *********************
//*********** PROGRAMME PRINCIPAL *******************
void main()
{
char chNomFichier[10];
char* caract;
int i=0;
int CS=255;
FILE* Buf;
//ouvrir fichier
printf("Entrez le nom du fichier a sauvegarder\n\n");
scanf("%s",&chNomFichier);
Buf=fopen(chNomFichier,"w+b");
//ecriture ds le fichier
printf("\nEntrez votre texte\n\n");
scanf("\n\n%s",&caract);
fwrite(&caract,sizeof(caract),1,Buf);
//fermeture buffer
fclose(Buf);
}
//compression
while(Buf==NULL)
{
fread (&caract,sizeof(caract),1,Buf);
if(caract=" ")
{
i=i+1;
}
//codage du nbr de repetition sur un octet
if(i=255)
{
fwrite (&caract,sizeof(CS),1,Buf);
i++;
i=0;
}
else
{
if(i>2)
{
fwrite (&caract,sizeof(CS),1,Buf);
i++;
i=0;
}
else
{
if(i=2)
{
fwrite (&caract,sizeof(" "),1,Buf);
}
if(i=1)
{
fwrite (&caract,sizeof(" "),1,Buf);
}
}
fwrite (&caract,sizeof(caract),1,Buf);
}
}
}