Chiffrement de fichiers en C [Résolu/Fermé]

Signaler
-
 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.

1 réponse

Messages postés
11066
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1 723
Tu as oublié de fermer ton fichier buffer.
Utilisateur anonyme
C'est vrai, je venais juste de trouver la solution.
Merci !

Résolu.