Problem z zaszyfrowaniem tekstu
Ostatnio zmodyfikowano 2015-12-03 21:37
Jasiu1047 Temat założony przez niniejszego użytkownika |
Problem z zaszyfrowaniem tekstu » 2015-12-03 18:07:11 Dzień dobry! Mam mały kłopot z zamieszczonym listingiem, który ma zaszyfrowywać wprowadzony tekst na podstawie róznicy kodów ascii. Jednak wprowadzając dane do konsoli nie szyfruje mi wszystkich podanych liter w tekscie. Nie pomysłu gdzie tkwi błąd. Za wszelkie uwagi bardzo dziekuję.
#include <cstdlib> #include <iostream> #include <cstring> #include <stdio.h> using namespace std; char t[120]; char s[120]; char k[120]; char roznica(char z1, char z2) { return char(unsigned(z1^z2)); } char szyfruj(char a[], char b[]) { int j=0; for(int i=0;i<strlen(a);i++) { if(j>strlen(b)) {j=0;} w=roznica(a,b[j]); j++; } } int main() { cout<<"Wprowadz tekst do szyfrowania: "; cin.getline(t,120); cout<<"Wprowadz szyfr: "; cin.getline(s,120); double dlugosct = strlen(t); double dlugoscs = strlen(s); if(dlugoscs>dlugosct) { cout<<"Szyfr jest dluzszy od tekstu prosze o wprowadzenie nowego "<<endl; } else { cout << "Zaszyfrowany: "; szyfruj(t,s); for(int i=0; i<strlen(k);i++) cout << k; cout << endl; szyfruj(k,s); cout << "Po deszyfracji: "; for(int i=0; i<strlen(k);i++) {cout << k; cout << endl; } } getchar(),getchar(); return 0; } |
|
Pawlo3 |
» 2015-12-03 21:20:54 #include <cstdlib> #include <iostream> #include <cstring> #include <stdio.h> using namespace std; char t[ 120 ]; char s[ 120 ]; char k[ 120 ];
char roznica( char z1, char z2 ) { return char( unsigned( z1 ^ z2 ) ); }
char szyfruj( char a[], char b[] ) { int j = 0; for( int i = 0; i < strlen( a ); i++ ) { if( j > strlen( b ) ) { j = 0; } w = roznica( a, b[ j ] ); j++; } }
int main() { cout << "Wprowadz tekst do szyfrowania: "; cin.getline( t, 120 ); cout << "Wprowadz szyfr: "; cin.getline( s, 120 ); double dlugosct = strlen( t ); double dlugoscs = strlen( s ); if( dlugoscs > dlugosct ) { cout << "Szyfr jest dluzszy od tekstu prosze o wprowadzenie nowego " << endl; } else { cout << "Zaszyfrowany: "; szyfruj( t, s ); for( int i = 0; i < strlen( k ); i++ ) cout << k; cout << endl; szyfruj( k, s ); cout << "Po deszyfracji: "; for( int i = 0; i < strlen( k ); i++ ) { cout << k; cout << endl; } } getchar(), getchar(); return 0; }
Oto kod w znacznikach cpp. |
|
Pawlo3 |
» 2015-12-03 21:37:12 Przecież program wogóle się nie kompiluje! Nie zadeklarowałeś żadnej zmiennej w. Argument funkcji różnica podałeś jako char *, a nie char!
Popraw program i dopiero proś o pomoc.
@edit: Jaki masz kompilator, że pozwala na takie błędy??? To chyba nie kompilator do języka C/C++! |
|
« 1 » |