trek Opublikowano 26 Grudnia 2006 Udostępnij Opublikowano 26 Grudnia 2006 Witam. Mam taki oto kod i przy kompilacji wyskakuje jeden blad #include <iostream> #include <string> #include <cstdlib> #include <windows.h> #include <ios.h> using namespace std; int main() { int numer; cout<<"1 - Szyfrowanie\n2 - Odszyfrowywanie\nCo chcesz wykonac?? "; cin>>numer; if(numer==1) { string tekst, zaszyfrowany; int przesuniecie; cout<<"Podaj tekst do zaszyfrowania:"<< endl; cin.getline(tekst, 699); cout<<"Podaj o ile przesunac: "; cin>>przesuniecie; zaszyfrowany.resize(tekst.size()); for (unsigned int i=0; i<tekst.size(); ++i) zaszyfrowany[i]=(tekst[i]+przesuniecie)%256; cout<<"\nTekst zaszyfrowany: "; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_INTENSITY); cout<<zaszyfrowany; } else if(numer==2) { } else if(numer>=3) { cout<<"Przykro mi ale niema polecenia o takim numerze\n"; } getchar(); return 0; } Moze ktos wie co jest nie tak?? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kaytek Opublikowano 26 Grudnia 2006 Udostępnij Opublikowano 26 Grudnia 2006 Może napiszesz JAKI błąd, bo mnie się całego kodu czytać po kolei nie chce, a kompilator na ogół wskazuje wadliwą linijkę. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 26 Grudnia 2006 Udostępnij Opublikowano 26 Grudnia 2006 Masz bibliotekę ios.h? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
trek Opublikowano 26 Grudnia 2006 Autor Udostępnij Opublikowano 26 Grudnia 2006 Compiling... szyfrowanie.cpp D:\Documents and Settings\Piotr.D\Pulpit\projekty c++\szyfrowanie\szyfrowanie.cpp(22) : error C2664: 'class std::basic_istream<char,struct std::char_traits<char> > &__thiscall std::basic_istream<char,struct std::char_traits<char> >::getline(char *,i nt)' : cannot convert parameter 1 from 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'char *' No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called Error executing cl.exe. szyfrowanie.exe - 1 error(s), 0 warning(s) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 26 Grudnia 2006 Udostępnij Opublikowano 26 Grudnia 2006 #include <iostream> #include <string> #include <cstdlib> #include <windows.h> #include <conio.h> //#include <ios.h> using namespace std; int main() { int numer; string tekst; cout<<"1 - Szyfrowanie\n2 - Odszyfrowywanie\nCo chcesz wykonac?? "; cin>>numer; if(numer==1) { string tekst, zaszyfrowany; int przesuniecie; cout<<"Podaj tekst do zaszyfrowania:"<< endl; cin>>tekst;//getline(tekst, 699); cout<<"Podaj o ile przesunac: "; cin>>przesuniecie; zaszyfrowany.resize(tekst.size()); for (unsigned int i=0; i<tekst.size(); ++i) zaszyfrowany[i]=(tekst[i]+przesuniecie)%256; cout<<"\nTekst zaszyfrowany: "; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_INTENSITY); cout<<zaszyfrowany; } else if(numer==2) { } else if(numer>=3) { cout<<"Przykro mi ale niema polecenia o takim numerze\n"; } getch(); return 0; } Poprawiłem. EDIT Jeszcze poukładałem i "znormalizowałem" xD #include <iostream> #include <string> #include <cstdlib> #include <windows.h> #include <conio.h> //#include <ios.h> using namespace std; int main() { int numer; cout << "1 - Szyfrowanie\n2 - Odszyfrowywanie\nCo chcesz wykonac?? "; cin >> numer; switch( numer ) { case 1: { string tekst, zaszyfrowany; int przesuniecie; cout << "Podaj tekst do zaszyfrowania:" << endl; cin >> tekst; cout << "Podaj o ile przesunac: "; cin >> przesuniecie; zaszyfrowany.resize( tekst.size() ); for (unsigned int i = 0; i < tekst.size(); ++i ) zaszyfrowany[i]=(tekst[i]+przesuniecie)%256; cout << "\nTekst zaszyfrowany: "; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_INTENSITY); cout << zaszyfrowany; } break; case 2: { } break; default: cout<<"Przykro mi ale niema polecenia o takim numerze\n"; } getch(); return 0; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
trek Opublikowano 26 Grudnia 2006 Autor Udostępnij Opublikowano 26 Grudnia 2006 Ale jak wpisze np. slowo1 slowo2 to juz nie moge wpisac o ile przesunac Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 26 Grudnia 2006 Udostępnij Opublikowano 26 Grudnia 2006 Bo slowo1 przesuwa Ci o slowo2 xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
trek Opublikowano 26 Grudnia 2006 Autor Udostępnij Opublikowano 26 Grudnia 2006 To jak zrobic by mozna bylo wpisac ile sie chce slow ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 9 Stycznia 2007 Udostępnij Opublikowano 9 Stycznia 2007 Trzeba by napisać jakiś bufor który by pobierał znaki aż do momentu naciśnięcia Entera. Ja nie dam rady tego zrobić - głównie brak czasu :( EDIT Zrobiłem, gdyby ktoś jeszcze potrzebował: /* Stałe w wincon.h Napisy: FOREGROUND_BLUE = 1 FOREGROUND_GREEN = 2 FOREGROUND_RED = 4 FOREGROUND_INTENSITY = 8 Tła: BACKGROUND_BLUE = 16 BACKGROUND_GREEN = 32 BACKGROUND_RED = 64 FOREGROUND_INTENSITY = 128 */ #include <iostream> #include <string> #include <cstdlib> #include <windows.h> #include <conio.h> using namespace std; int main( void ) { system("cls"); int numer; cout << "1 - Szyfrowanie\n2 - Odszyfrowywanie\nCo chcesz wykonac?? "; cin >> numer; switch( numer ) { case 1: { string zaszyfrowany, tekst; int przesuniecie; char c; cout << "Podaj tekst do zaszyfrowania:\n"; /* \x20 = Spacja \x0D = Enter \x08 = Backspace */ while( ( c = getch() ) != '\x0D' ) //Wykonuj do momentu nacisniecia Entera { //Jesli klawisz nie byl Backspac'em if( c != '\x08' ) { cout << c; tekst += c; } else { // Kasuj ostatni znak if( tekst.size() > 0 ) { tekst.resize( tekst.size() - 1 ); cout << '\x08' << '\x20' << '\x08'; //Kasuj znak } } } cout << "\nPodaj o ile przesunac: "; cin >> przesuniecie; zaszyfrowany.resize( tekst.size() ); for (unsigned int i = 0; i < tekst.size(); ++i ) zaszyfrowany[i] = ( tekst[i] + przesuniecie ) % 256; cout << "\nTekst zaszyfrowany: "; SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), FOREGROUND_GREEN | FOREGROUND_INTENSITY ); cout << zaszyfrowany; } break; case 2: { SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), FOREGROUND_RED | FOREGROUND_INTENSITY ); cout << "Opcja niedostepna.\n"; } break; default: { SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), FOREGROUND_RED | FOREGROUND_INTENSITY ); cout << "Nie ma polecenia o takim numerze.\n"; } } getch(); return 0; } =3 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się