Soyez le premier à donner votre avis sur cette source.
Snippet vu 7 013 fois - Téléchargée 38 fois
#include <iostream> #include <string> #include <fstream> using namespace std; string crypte(string x,int plus) { for(int i=0;i<(int)x.size();i++) { x[i]=x[i]+plus; } return(x); } string decrypte(string x,int moins) { for(int i=0;i<(int)x.size();i++) { x[i]=x[i]-moins; } return(x); } int main() { int choix; long cle; char fichier[128],fichiercible[128]; string line,s,cs; cout << "\033[2J" << "1. Cryptage\n2. Decryptage\n"; cin >> choix; switch(choix) { case 1: { cout << "\nEntrez la cle (uniquement des chiffres) : "; cin >> cle; cin.ignore(); cout << "Fichier source : "; cin.getline(fichier, 128); cout << "Fichier cible : "; cin.getline(fichiercible, 128); cout << "Lecture du fichier...\n"; ifstream fi(fichier); while(!fi.eof()) { getline(fi, line); s += line+'\n'; } fi.close(); cout << "Cryptage...\n"; cs=crypte(s, cle); cout << "Ecriture dans le fichier cible...\n"; ofstream fo(fichiercible); fo << cs; fo.close(); cout << "OK\n"; } break; case 2: { cout << "\nEntrez la cle (uniquement des chiffre) : "; cin >> cle; cin.ignore(); cout << "Fichier source : "; cin.getline(fichier, 128); cout << "Fichier cible : "; cin.getline(fichiercible, 128); cout << "Lecture du fichier...\n"; ifstream fi(fichier); while(! fi.eof()) { getline(fi, line); cs += line+'\n'; } fi.close(); cout << "Decryptage...\n"; s=decrypte(cs, cle); cout << "Ecriture dans le fichier cible...\n"; ofstream fo(fichiercible); fo << s; fo.close(); cout << "OK\n"; } break; default: break; } }
Il y a juste un truc qui m'arrache les yeux :
-Dans tes fonctions "string crypte(string x, int plus)" et "string decrypte(string x,int moins)" plus et moins sont déclarés en int alors que dans le main tu déclare "long cle;" que tu envoie ensuite à tes fonctions..... Il peut avoir des bugs à envoyer un long à une fonction qui doit avoir un int en parametre. Moi je mettrais tous en long, mais ce n'est que mon avis........
Cordialement
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.