Votre avis sur ce code merci

adess00 Messages postés 261 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 27 septembre 2008 - 30 août 2005 à 16:52
adess00 Messages postés 261 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 27 septembre 2008 - 30 août 2005 à 21:06
Salut a tous

Je voudrai avoir un avis sur ce code et savoir comment corriger certaines erreurs merci.

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>


main()


{
char chem[255];
char incle[20];
int msg=0;
char cle=0;
long lmsg;
int lcle=0;
long a=0;
long prct;
int car;


FILE *ftoc;
FILE *ftow;


printf("Algorithme de cryptage basé sur 8 bits\nBy adess\n\nEntrez l'emplacement du fichier : ");
gets(chem);


ftoc=fopen(chem, "rb");
ftow=fopen(strcat(chem,".crypt"),"wb");

printf("\nCrypt key : ");
gets(incle);

//taille du fichier
fseek(ftoc,0,SEEK_END);
lmsg=ftell(ftoc);


lcle=strlen(incle);

do{
fseek(ftoc,a,SEEK_SET);
fseek(ftow,a,SEEK_SET);
car=_getw(ftoc);

cle=incle[a%lcle];


car=(car+cle+256)%256;//pour decryper mettez un - a la place du +


prct=(a/lmsg);
printf("%d / %d\n",a,lmsg);
_putw(car,ftow);


a++;
}while (a!=lmsg);



fclose(ftoc);
fclose(ftow);

system("pause");


return 0;


}

Bon ya une erreur majeure c ke kan je crypte, il me rajoute 3 octects je c pas pk
Et jvoudrai savoir comment on declare un nombre a virgule float peut etre ? mais apres il me di k il pe pas convertir en int (c pour faire le pourcentage d avancement) et je voudrai aussi k il ecrive ce pourcentage sur la meme ligne en remplacant l ancien

Merci de votre aide ! Je vai chercher en attendant
a+

2 réponses

steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 5
30 août 2005 à 18:01
"main()" est obselete, doit etre remplacé par "int main()".

printf à remplacer par puts ou fputs quand tu n'utilises pas de format,
question d'efficacité car avec printf la chaine est parser avant d'etre
affichée.

gets et scanf("%s"...) à proscrire pour la saisie d'une chaine (et meme
scanf en générale) à cause du risque d'overflow sur le buffer passé en
paramètre.

Penses à controler le retour de fopen.

N'utilises jamais de fonction commencant par un "_", c'est coté implémentation.
0
adess00 Messages postés 261 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 27 septembre 2008 1
30 août 2005 à 21:06
Oulaaa j ai pas tout compris ( j ai commencé hier)
Si je n utilise pas _puts comment j ecri dans mon fichier en binaire ?
Et j ai toujours pas trouver pourquoi il me rajoute 3 octets c embetant pour crypter un fichier
+
0
Rejoignez-nous