Besoin d'aide en C... [Urgent]
yoyo1985
Messages postés
11
Statut
Membre
-
Jolkdarr -
Jolkdarr -
salut !
g fais le programme suivant mais je dois intégrer une fonction pour calculer le temps que met l'ordi pour chaque méthode de cryptage / décryptage et je ne sais absolument pas comment faire...
Je vous remercie...
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
// Prototype de fonctions
unsigned char *lire_image( int h,int l ,char *nomfichier);
unsigned char *crypter_decrypter(unsigned char *imageS, int h, int l, int cle);
unsigned char *crypter_decrypter1(unsigned char *imageS, int h, int l, int cle);
void ecrire_image (unsigned char *imageD, int h, int l, char *nomfichier);
// Début du programme principal
void main()
{
int h,l, choix, cle; // Déclaration des variables
char nomfichier[80];
unsigned char *imageS, *imageD;
// Saisie du nom de fichier, de sa largeur et de sa hauteur
printf("Entrer le nom du fichier :\n");
scanf("%s", &nomfichier);
printf("Entrer la largeur du fichier :\n");
scanf("%i", &l);
printf("Entrer la hauteur du fichier :\n");
scanf("%i", &h);
printf("Entrer une valeur de cle de 8 bits (entre 0 et 255) :\n");
scanf("%i", &cle);
imageS = lire_image(h, l , nomfichier); // Lecture de l'image
// Sélection de la méthode de cryptage / décryptage
printf("Selectionner la methode de cryptage / décryptage :\n");
printf("1. Cryptage / Decryptage de chaque octet de l'image lignes par lignes\n");
printf("2. Cryptage / Decryptage de chaque octet de l'image colonnes par colonnes\n");
scanf("%i", &choix);
if (choix == 1)
imageD = crypter_decrypter(imageS, h, l, cle);
else
if (choix == 2)
imageD = crypter_decrypter1(imageS, h, l, cle);
else printf("Votre choix n'est pas valide !\n");
ecrire_image (imageD, h, l, nomfichier); // Enregistrement des modifications dans le fichier image
}
// Lecture du fichier image à crypté / décrypté
unsigned char *lire_image( int h,int l ,char *nomfichier)
{
unsigned char *vec;
FILE *fp1;
fp1 = fopen(nomfichier,"rb"); // Ouverture du fichier
vec = (unsigned char *)malloc(h * l);
fread(vec,sizeof(unsigned char),h*l,fp1);
fclose(fp1);
return(vec); // Retourne le pointeur sur l'image
}
//Cryptage / Décryptage de chaque octet de l'image lignes par lignes
unsigned char *crypter_decrypter(unsigned char *imageS, int h, int l,int cle)
{
for(int m=0; m<l*h; m++)
imageS[m] = imageS[m]^cle;
return(imageS);
}
//Cryptage / Décryptage de chaque octet de l'image colonnes par colonnes
unsigned char *crypter_decrypter1(unsigned char *imageS,int h, int l,int cle)
{
for(int i=0; i<l; i++)
{
for(int j=0; j<h; j++)
imageS[(j*l + i)] = imageS[(j*l + i)]^cle;
}
return(imageS);
}
//Ecriture du fichier image crypté ou décrypté
void ecrire_image (unsigned char *imageD, int h, int l, char *nomfichier)
{
FILE *fp1;
fp1 = fopen(nomfichier,"wb");
fwrite(imageD, sizeof(unsigned char), h*l, fp1);
fclose(fp1);
}
g fais le programme suivant mais je dois intégrer une fonction pour calculer le temps que met l'ordi pour chaque méthode de cryptage / décryptage et je ne sais absolument pas comment faire...
Je vous remercie...
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
// Prototype de fonctions
unsigned char *lire_image( int h,int l ,char *nomfichier);
unsigned char *crypter_decrypter(unsigned char *imageS, int h, int l, int cle);
unsigned char *crypter_decrypter1(unsigned char *imageS, int h, int l, int cle);
void ecrire_image (unsigned char *imageD, int h, int l, char *nomfichier);
// Début du programme principal
void main()
{
int h,l, choix, cle; // Déclaration des variables
char nomfichier[80];
unsigned char *imageS, *imageD;
// Saisie du nom de fichier, de sa largeur et de sa hauteur
printf("Entrer le nom du fichier :\n");
scanf("%s", &nomfichier);
printf("Entrer la largeur du fichier :\n");
scanf("%i", &l);
printf("Entrer la hauteur du fichier :\n");
scanf("%i", &h);
printf("Entrer une valeur de cle de 8 bits (entre 0 et 255) :\n");
scanf("%i", &cle);
imageS = lire_image(h, l , nomfichier); // Lecture de l'image
// Sélection de la méthode de cryptage / décryptage
printf("Selectionner la methode de cryptage / décryptage :\n");
printf("1. Cryptage / Decryptage de chaque octet de l'image lignes par lignes\n");
printf("2. Cryptage / Decryptage de chaque octet de l'image colonnes par colonnes\n");
scanf("%i", &choix);
if (choix == 1)
imageD = crypter_decrypter(imageS, h, l, cle);
else
if (choix == 2)
imageD = crypter_decrypter1(imageS, h, l, cle);
else printf("Votre choix n'est pas valide !\n");
ecrire_image (imageD, h, l, nomfichier); // Enregistrement des modifications dans le fichier image
}
// Lecture du fichier image à crypté / décrypté
unsigned char *lire_image( int h,int l ,char *nomfichier)
{
unsigned char *vec;
FILE *fp1;
fp1 = fopen(nomfichier,"rb"); // Ouverture du fichier
vec = (unsigned char *)malloc(h * l);
fread(vec,sizeof(unsigned char),h*l,fp1);
fclose(fp1);
return(vec); // Retourne le pointeur sur l'image
}
//Cryptage / Décryptage de chaque octet de l'image lignes par lignes
unsigned char *crypter_decrypter(unsigned char *imageS, int h, int l,int cle)
{
for(int m=0; m<l*h; m++)
imageS[m] = imageS[m]^cle;
return(imageS);
}
//Cryptage / Décryptage de chaque octet de l'image colonnes par colonnes
unsigned char *crypter_decrypter1(unsigned char *imageS,int h, int l,int cle)
{
for(int i=0; i<l; i++)
{
for(int j=0; j<h; j++)
imageS[(j*l + i)] = imageS[(j*l + i)]^cle;
}
return(imageS);
}
//Ecriture du fichier image crypté ou décrypté
void ecrire_image (unsigned char *imageD, int h, int l, char *nomfichier)
{
FILE *fp1;
fp1 = fopen(nomfichier,"wb");
fwrite(imageD, sizeof(unsigned char), h*l, fp1);
fclose(fp1);
}
4 réponses
Salut yoyo!
En fait, tu as la librairie time.h qui te permet de récupérer l'heure du système. Ainsi, il te suffit de récupérer l'heure avant et après ton cryptage/décryptage. Le temps total pour celà sera la différence entre ces deux temps.
Mickaël
En fait, tu as la librairie time.h qui te permet de récupérer l'heure du système. Ainsi, il te suffit de récupérer l'heure avant et après ton cryptage/décryptage. Le temps total pour celà sera la différence entre ces deux temps.
Mickaël
Salut!
#include <time.h> /* blablabla */ time_t t1; time_t t2; double dt; t0 = time(NULL); /* execution de la fonction */ t1 = time(NULL); dt = difftime(t1, t0); /* blablabla */