Chiffrement de fichiers en C

Résolu/Fermé
Utilisateur anonyme - 17 juin 2016 à 21:55
 Utilisateur anonyme - 18 juin 2016 à 00:57
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 834
17 juin 2016 à 23:01
Tu as oublié de fermer ton fichier buffer.
0
Utilisateur anonyme
18 juin 2016 à 00:57
C'est vrai, je venais juste de trouver la solution.
Merci !

Résolu.
0