Witajcie. Stworzyłem program, coś na wzór magicznej ósmej bili (która losuje odp. na pytanie ;P), lecz gdy do zmiennej Pytanie (zadekl. jako string) przypisuje sie przez cin'a łańcuch znaków ze spacją/spacjami, to pętla do wykonuje mi sie 3 razy, zaś gdy spacje znikną (np. zastąpie je kropkami bądź czymkolwiek jeszcze) - wszystko działa okej. Miałem do tej pory tak ze WSZYSTKIMI programami jakie tworzyłem.
oto kod:
// Wirtualny Paweł
#include <iostream>
#include <conio.h>
using namespace std;
const int IloscOdpowiedzi = 30;
int main()
{
// Wstępniak i dane osobowe
cout << "Witaj! Jestem Pawel Ilnicki, a ty?" << endl;
string Imie;
cout << "IMIE --> ";
cin >> Imie;
cout << "W czym ci mam pomoc? Napisz swoj pytanie, a podpowiem ci najlepsza decyzje!" << endl;
cout << "(info: wpisz exit by zakonczyc dzialanie glupiej melepety ;)" << endl;
bool RozkazExit = false;
do {
// Pytanie
string Pytanie;
cout << "TWOJE PYTANIE -->";
cin >> Pytanie;
// Czy użytkownik chce zakończyć działanie programu?
if (Pytanie == "exit")
{
RozkazExit = true;
}
// Losowanie ziarna dla odpowiedzi
srand(static_cast<unsigned int>(time(NULL)));
int ZiarnoOdpowiedzi = rand() % IloscOdpowiedzi + 1;
switch (ZiarnoOdpowiedzi)
{
// Odpowiedzi pozytywne.
case 1: cout << "Pewnie! " << endl << endl; break;
case 2: cout << "Jasne! " << endl << endl; break;
case 3: cout << "Bez watpienia! " << endl << endl; break;
case 4: cout << "Raczej tak. " << endl << endl; break;
case 5: cout << "Haha, i ty sie jeszcze pytasz - TAK! " << endl << endl; break;
case 6: cout << "TAK, TAK i jeszcze raz TAK " << endl << endl; break;
case 7: cout << "Bez cienia zwatpienia mowie ze tak. " << endl << endl; break;
case 8: cout << "Chyba tak. " << endl << endl; break;
case 9: cout << "Mysle ze... tak. " << endl << endl; break;
case 10: cout << "Zgadzam sie z tym. " << endl << endl; break;
// Odpowiedzi negatywne
case 11: cout << "Nie wydaje mi sie. " << endl << endl; break;
case 12: cout << "Raczej nie. " << endl << endl; break;
case 13: cout << "No co ty, w zyciu NIE! " << endl << endl; break;
case 14: cout << "O nie, w zyciu sie z toba nie zgodze! " << endl << endl; break;
case 15: cout << "Na pewno nie. " << endl << endl; break;
case 16: cout << "Boj sie boga " << Imie << "! " << endl << endl; break;
case 17: cout << Imie << " - brak ci piatej klepki? " << endl << endl; break;
case 18: cout << "Lepiej bym sie nad tym zastanowil... " << endl << endl; break;
case 19: cout << "Nie. " << endl << endl; break;
case 20: cout << "Nie ma o tym mowy, wez przestan! " << endl << endl; break;
// Odpowiedzi neutralne
case 21: cout << "No... tu bym sie spieral. " << endl << endl; break;
case 22: cout << "No nie wiem... " << endl << endl; break;
case 23: cout << "Trudne pytanie, wiesz? " << endl << endl; break;
case 24: cout << "To zalezy... " << endl << endl; break;
case 25: cout << "Hm.... musial bym sie gleboko zastanowic. " << endl << endl; break;
case 26: cout << "No tym pytaniem przesadzilas... " << endl << endl; break;
case 27: cout << "Nie mam zielonego pojecia! " << endl << endl; break;
case 28: cout << "Watpie w to. " << endl << endl; break;
case 29: cout << "Hahaha, no tym mnie rozwaliles! " << endl << endl; break;
case 30: cout << "Jak uwazasz, mnie to bez roznicy... " << endl << endl; break;
// Zabezpieczenie przez błędem
default: cout << "IOS Error: Grain has higher value than constant variable AnswersNum! ;P" << endl << endl;
}
} while (RozkazExit == false);
return 0;
getch();
}