mouk Opublikowano 27 Kwietnia 2004 Zgłoś Opublikowano 27 Kwietnia 2004 Mam taki maly programik: #include <iostream.h> #include <fstream.h> #include <stdio.h> #include <string.h> class szyfrowanie{ private: char* tekst; //wskaznik do chara public: szyfrowanie(){ //konstruktor tekst=new char[255]; // nowa tablica znakowa (string) } void szyfruj(); // deklaracje funkcji void zczytaj(); void zapisz(char*); void podglad(); void deszyfruj(char*); }; void szyfrowanie::deszyfruj(char *plik){ FILE *file; char* klucz=new char[255]; file = fopen(plik, "r"); fread(tekst,sizeof(tekst),1,file); cout<<"Wpisz klucz do odszyfrowania: "; cin>>klucz; for(int i=0;i<strlen(tekst);i++){ // petla dla wszystkich liter w tekscie tekst=tekst^klucz[i%strlen(klucz)]; //z-xor-owanie kazdej litery z odpowiednim znakiem klucza cout<<tekst; } cout<<endl; } void szyfrowanie::zczytaj(){ // zczytywanie tekstu z pliku cout << "Podaj tekst do zaszyfrowania -> "; cin >> tekst; } void szyfrowanie::zapisz(char *plik){ FILE *file; // definicja wskaznika do typu FILE file = fopen(plik, "w"); //wskazanie wskaznika file do nowego obiektu (otwarty plik w trybie czytania) fwrite(tekst, sizeof(tekst), 1, file); fclose(file); //zamkniecie pliku cout<<"Zapisano tekst do pliku "<<plik<<"n"; } void szyfrowanie::szyfruj(){ char* klucz=new char[255]; cout<<"Wpisz klucz do szyfrowania: "; cin>>klucz; for(int i=0;i<strlen(tekst);i++){ tekst=tekst^klucz[i%strlen(klucz)]; } } void szyfrowanie::podglad(){ // podglad tekstu cout<<"nTEKST ("<<strlen(tekst)<<"):n-----------n"<<tekst<<"n-----------nn"; } void main() { szyfrowanie a; a.deszyfruj("1.txt"); a.zczytaj(); a.szyfruj(); a.zapisz("1.txt"); } Program sie ladnie kompiluje, ale.... ale niestety przy probie deszyfrowania dobrze mi deszyfruje tylko pierwsze 4 znaki. Czy ktos wie co źle robię? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
yasin Opublikowano 27 Kwietnia 2004 Zgłoś Opublikowano 27 Kwietnia 2004 po pierwsze okropne formatowanie, nic nie widac, popracuj nad stylem, po drugie, probowales debugowac? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
mouk Opublikowano 27 Kwietnia 2004 Zgłoś Opublikowano 27 Kwietnia 2004 Mi sie wydaje ze problem jest z ta pętla: for(int i=0;i<strlen(tekst);i++){ tekst[i]=tekst[i]^klucz[i%strlen(klucz)]; cout<<tekst[i]; } Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...