Chiffrement de fichiers en C

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
Bonsoir,

J'ai codé un petit programme en C pour chiffrer / déchiffrer le contenu d'un fichier.
Cependant il se passe quelque chose de bizarre... Mon programme fonctionne parfaitement avec de gros fichiers (par exemple en écrivant plus de 20 lignes dans un fichier texte), mais si je met "test" dans un fichier texte et que j'essaie de le chiffrer, alors le fichier est effacé (le fichier texte se retrouve vide).

Voici mon code :
void crypter(char * file)
{
        int carac = -1;
        FILE * In = fopen(file, "rb");
        FILE * buffer = fopen("nouveaufichier", "wb");

        while((carac = fgetc(In)) != EOF)
        {
                fputc(carac+1, buffer);  /* Je n'ai pas encore défini la clé, pour l'instant j'ajoute juste 1 pour tester... */
        }
        fclose(In);
}

void decrypter(char * file)
{
        int carac = -1;
        FILE * In2 = fopen(file, "rb");
        FILE * buffer = fopen("fichieroriginal", "wb");

        while((carac = fgetc(In2)) != EOF)
        {
                fputc(carac-1, buffer);
        }
        fclose(In2);
}


Et dans le main j'appelle juste ces deux fonctions l'une après l'autre dans un répértoire donné.

Merci.
A voir également:

1 réponse

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Tu as oublié de fermer ton fichier buffer.
0
Utilisateur anonyme
 
C'est vrai, je venais juste de trouver la solution.
Merci !

Résolu.
0