Dev_Vernam/prgm/codage.c

52 lines
1.1 KiB
C
Raw Normal View History

2022-12-16 12:28:09 +01:00
/*
Codage du message
On ecrit un programme qui à partir d'un fichier message et
d'un fichier clé produira un fichier message_code
*/
/*
1. La méthode la plus simple les noms de fichiers sont connus
2. On demande le nom des fichiers à l'utilisateur
3. Les noms de fichiers sont passés en paramètres sur le ligne de commande
*/
2022-12-15 22:27:05 +01:00
#include <stdio.h>
#include <stdlib.h>
#include "fonctions.h"
int codage(int argc, char *argv[]) {
FILE *f_m, *f_k, *f_mc; /* strcutures permettant, une fois FOPEN
exécuté de recupérer des informations pour manipuler les fichiers
en C */
2022-12-16 12:28:09 +01:00
2022-12-15 22:27:05 +01:00
int c;
int k1;
int calcul;
2022-12-16 12:28:09 +01:00
char * cheminFic_m = argv[2];
2022-12-15 22:27:05 +01:00
f_m = fopen(cheminFic_m, "r");
2022-12-16 09:01:00 +01:00
/* Traitement erreur */
2022-12-16 12:28:09 +01:00
char * cheminFic_k = argv[3];
2022-12-15 22:27:05 +01:00
f_k = fopen(cheminFic_k, "r");
/* Traitement erreur */
2022-12-16 12:28:09 +01:00
char * cheminFic_mc = argv[4];
f_mc = fopen(cheminFic_mc, "w");
2022-12-15 22:27:05 +01:00
/* Traitement erreur */
2022-12-16 12:28:09 +01:00
2022-12-15 22:27:05 +01:00
while ((c = fgetc(f_m)) != EOF)
{
k1 = fgetc(f_k);
calcul = (c+k1) % 256;
fputc(calcul, f_mc);
}
2022-12-16 12:28:09 +01:00
2022-12-15 22:27:05 +01:00
fclose(f_m);
fclose(f_k);
fclose(f_mc);
return EXIT_SUCCESS;
}