Skocz do zawartości

[C++]Cin


mnbcv

Polecane posty

Nie wiem czy ktos bedzie w stanie mi tu pomoc... Ale co mi szkodz sprobowac.

Mam taki kod w c++. Niestety, pod dodaniu linijki cin >> w; program zaczął się sypać... Tzn teraz po wybraniu opcji 1. Reszta programu wykonywana jest jednym ciągiem. Program nie zatrzymuje się, aby zaczekać aż wpiszę tekst do zaszyfrowania. Nie chcę pomocy z resztą programu... Nie wiem tylko jak ugryźdź, tego cina.
Przed dodaniem tej linijki jeszcze wszystko bylo dobrze... Pomocy. To moja praca na zaliczenie przedmiotu na studiach. I juz niedługo musze go oddac do oceny.
Z góry dzięki.......

Kod:
[cpp][/cpp]

// zmień temat na bardziej opisowy - Iskar
Link do komentarza
Udostępnij na innych stronach

Czlowieku zlituj sie ;p
Ehh albo dobra wali mnie to i tak ide zaraz spac.

[code=C++] #include <iostream>
using namespace std;
//-- Zadekl[YH[H^KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKŚ6\"6WŚ\"6\"FV7BBśV7śćV2FVśĆ
ŃŹą
int main(void)
{
//--Deklaracja zmiennych--------------- KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKCBZMNBśV7sśV736
WBfCfC%7g&
5Ź,p4(ąąp
źcesz zrobic?n1. Wpisac tekst do zakodowanian\";
cout << \"2. ]XZZ[XHZ[B] #2w62FV7BFFśFvć#6WBfCfC#B=ŃŃź
ąp4(ąą \"Twoj wybor:n> \";
cin >> w;
cin.ignoreJNBYOLJCBB] ZZŚ7g&vćFV7BćRŚR'ŚV&72#SgŚćśrŚfwC4(ŃąĄŃ4(ąąpQo zaszyfrowaniu:n> \";
//--Uruchomienie funkcji Cezar, kHXHY[HZY[HZKKKKKCB] C6WŚ\"FV7BśV7fCfC&#vWF6\"4(Ń4)4(4(źź
--------------------------------------
char* cezar(char* te[XCBBKT]Z]KHYYHZ]ćFś&w&ćRv7FFF&Ć7w77Fś6ąŃ4(or(int j=0; j<257; j++)
{
//--Instrukcje wykonywaneH^X]KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKCBKMHFĆ7Ś&&W&WŚVGVŚ6ĆFW&śRF4(ĄŃŃmtŃŃmtą=90)
{
//--zwiekszenie cyfry reprezentujacej literHZY[ZXKKKKKKKCBKX[H KKKKKKKKKKKŃŃmtĄŃŃmt
ą4(źź)ąra bedzie wieksza od 90 - ostatniej litery w--------
//--alXXYK[^HX]KZHYvćR'Ć& amp;vćR24(ĄŃŃmt

{
tekst[j]=(int)tekst[j]-90+64;
CBCBKR[ZHZ][HHX[XĆFW\"ÓrFĆ7Ś&ŃąŃŃź
if(tekst[j]>=97 && tekst[j]<=122)
& nbsp;BK^YZ[YHYH^[ZXZ]H62ŚVććVśV77Ć
24(Ńst[j]=(int)tekst[j
]+klucz;
//--Jezeli zwiekszona cyfra bedzYHYZHLH]YZ]HKKKKKKKCBKX[XXYKFćĆWw&62F7ŚFRF'Ś7f'vćR4(źźąź--------------------
if(tekst[j]>=123)
BZOJ[
]ZKLLMBw&6VćRŚVććVFV7B4)ŃŃ4)4(źź--------------------------------------------------
[/code]

Moze to byc nienajlepsze rozwiazanie, sam je przed chwila wymyslilem, ale dziala wink.gif

Down With The Sickness :)

Link do komentarza
Udostępnij na innych stronach

  • 3 weeks later...
Pascal
#include <iostream>
#include <string>

using namespace std;

int main()
{
string oryginal, zaszyfrowany, odszyfrowany;
const int przesuniecie=3; // wartosc dodawana do znaku (mniejsza od 256)

cout <<"Podaj tekst do szyfrowania: ";
cin >>oryginal;
cin.ignore();
cout <<"Tekst oryginalny: "<<oryginal<<"nn";

//ustalenie rozmiaru tekstu zaszyfrowanego
zaszyfrowany.resize(oryginal.size());

for (unsigned int i=0; i<oryginal.size(); ++i)
zaszyfrowany[i]= (oryginal[i]+przesuniecie)%256;

cout <<"Tekst zaszyfrowany: "<<zaszyfrowany<<"nn";

//ustalenie rozmiaru tekstu odszyfrowanego
odszyfrowany.resize(zaszyfrowany.size());

for (unsigned int i=0; i<zaszyfrowany.size(); ++i)
odszyfrowany[i]=(zaszyfrowany[i]+256-przesuniecie)%256;

cout <<"Tekst odszyfrowany: "<<odszyfrowany<<"nn";


if( oryginal == odszyfrowany)
cout <<"Szyfrowanie przebieglo prawidlowonn";
else
cout <<"Wystapil NIEZNANY blad podczas szyfrowania!!!nn";

cout <<"Nacisnij ENTER aby zakonczycn";
getchar();
return 0;
}


źródło: www.it.hl.pl

Nie dało się dać całego linka więc podałem kod :]

pzdr
Link do komentarza
Udostępnij na innych stronach

tak na marginesie ... kod powinien wygladac nastepujaco ...
Pascal//---------------------------------------------------------------------------
#include <iostream.h>
#include <conio.h>
#include <string.h>

//---------------------------------------------------------------------------

int main(int argc, char* argv[])
{
char * tekst = new char [256];
int klucz,w;
klucz = 3;
std::cout << "Szyfrowanie kodem Cezara - Marek K nn";
std::cout << "Co chcesz zrobic?n1. Wpisac tekst do zakodowanian";
std::cout << "2. Odczytac tekst do zakodowania z plikun";
std::cout << "3. Wpisac tekst do odkodowanian";
std::cout << "4. Odczytac tekst do odkodowania z plikunn";
std::cout << "Twoj wybor:n> ";
std::cin >> w;
std::cout << "nn";
switch (w)
{
case 1 :
{
std::cout << "Podaj tekst do zaszyfrowania (tekst nie moze przekroczyc 256znakow):n> ";
std::cin.ignore(1);
std::cin.getline(tekst, 256);
std::cout << "Tekst po zaszyfrowaniu:n> ";
//--Uruchomienie funkcji Cezar, ktora zwraca zaszyfrowana zmienna tekst------
// cout << cezar(tekst, klucz) << "n";
break;
}
}
delete [] tekst;
system("pause");
return 0;
}

nieco czysciej, ladniej i przynajmniej wiadomo jakiego rozmiaru jest zmnienna tekst ...
Pozdrawiam
Link do komentarza
Udostępnij na innych stronach

Usuwanie komentarzy opisujących program (pierwsze 4 linie) nie jest najmądrzejszym rozwiązaniem. Otrzymując taki kod mamy trudniejsze zadanie do jego rozszyfrowania i zrozumienia ( np. gdy dostajemy rozbudowany projekt skaładający sie z kilkudziesięciu plików).
:)
Link do komentarza
Udostępnij na innych stronach

napisalem kod a nie program ... malo wazne ... kazdy komentuje to co uwaza za stosowne i wiesz doskonale iz nie ma zadnych ytycznych w tej kwestii. Ten fragment kodu ktory umiescilem nie wymaga zadnych wyjasnien bo nawet poczatkujacy wyczai bez problemu co sie tam dzieje.
Przeksztalcenia typu ...
PascalB_32 = (((Init32[0] << 6) ^ Init32[0]) >> 13);
moga wymagac ineco komentarza choc zwykle sie opisuje co to robi a nie ... [quote] przesuwam bity w leso o tyle i tyle pozycji ... [/quote]to nie wypracowanie z polskiego ...
Kod umiescilem, dziala poprawnie wiec sie odcinam od dalszej dyskusji na temat komentarzy. Jest bez sensu. Howgh
Pozdrawiam
Link do komentarza
Udostępnij na innych stronach

Nie wiem czy zauważyłeś ale napisałem :

[quote] pierwsze 4 linie [/quote]

Wiem, że komentowanie każdej lini mija się z celem bo jak sam zauważyłeś to nie wypracowanie wink.gif Mimo, że każdy programista ma swój indywidualny styl pisania ja jednak polecam pisanie wstępu który ułatwia analizę innym programistą.

:)
Link do komentarza
Udostępnij na innych stronach

skusiles mnie jednak ... ja osobiscie wole tak ... styl ala VCL i Borland
Pascal//---------------------------------------------------------------------
// method: bool THash_EBP::Hash(...)
// description: calculates the EBP hash with HashWidth width for levels between LevelStart and LevelEnd
// returns: boolean value (true) if successful
// last modification: 13.01.2006
//---------------------------------------------------------------------

daje cos takiego przed kazda funkcja klasie i jazda ... a w kodzie juz niewiele tekstu, najwyzej jak jakas zamotana sie trafi zebym sam wiedzial co to jest. Mam jeden plus. Mojego kodu nikt poza moim teatem nie oglada wiec sie biedacyjuz przyzwyczaili i wiedza mniej wiecej co jest co ...
na zewnatrz wychodzi tylko kod opisany juz przez innych ... mamy ludzi od tworzeni aopis projektow i to juz ich dzielo ..
Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...