Jeśli wpisana liczba jest literą...

0

Pod względem zdefiniowania zmiennej tablicowej wszystko w kodzie gra. Nie wyskakują żadne błędy. Nie bardzo jednak wiem jak zdefiniować pętlę, która będzie właśnie takim zabezpieczeniem np.

jeśłi (liczba==jakakolwiek_litera_alfabetu) to np. wprowadz poprawną wartość- i tak w kółko.

Po prostu napisałem prosty kod, który oblicza mi wartość funkcji kwadratowej. Napisałem go sam i udało mi się, ale teraz próbuje stworzyć zabezpieczenia do niego i właśnie mi to średnio wychodzi. Podpowiecie coś?

0

Żaden problem, to jeden z "standardowych problemów". Rozwiązanie masz tutaj Zabezpieczenie przed wpisywaniem liter.

0

Dzięki wielkie. Już sobie przypomniałem. Przez takie problemy co raz częściej się zastanawiam czy w ogóle powinienem się bawić w programowanie. Niby mnie ta dziedzina fascynuje, ale jak sobie myślę ile muszę się jeszcze nauczyć, to aż mi się słabo robi.

0

Znalazłem coś takiego: http://klub.chip.pl/b.krzemien/c++-faq-pl/index.html Co o tym sądzicie? A może znacie jakieś inne poratale, które są bardziej obszerne pod kątem faq c+?

0

Znalazłem coś takiego: http://klub.chip.pl/b.krzemien/c++-faq-pl/index.html Co o tym sądzicie? A może znacie jakieś inne portale, które są bardziej obszerne pod kątem faq c++?

0

Komunikat o błędzie wyświetla mi w porządku. Jednak gdy wpisuje normalną liczbę, to muszę ją wpisać jeszcze raz, żeby zapytał mnie o potęgę. Czemu tak jest?

 cout <<"podaj liczbe: ";
	while (!(cin>>liczba)) 	
	{
		cout <<"nie moze byc litera";
		cin.clear();
		cin.sync();
	}
	cin >> liczba;
		cout <<"podaj potege: ";
		cin >> stopien;
0
    while (!liczba)     
    {
        cout <<"nie moze byc litera";
        cin.clear();
        cin.sync();
        cin>>liczba;
    }
0

Wiem, że to są pierdoły, ale nie bardzo rozumiem dlaczego nie muszę dawać cin>>liczba na zewnątrz while'a. Przecież w while'u jest to, co dotyczy litery a nie wartości liczbowych.

1

@finito, nie przejmuj się @zonkoo22 sam jeszcze nie bardzo wie co się dzieje, wystarczy że zrobisz:

cout <<"podaj liczbe: ";
while(!(cin>>liczba))
  {
   cout<<"nie moze byc litera"<<endl;
   cin.clear();
   cin.sync();// czasami może nie działać, więc: while(cin.get()!='\n') {}
  }

A to że jeszcze raz trzeba podać bo sam to wstawiłeś po pętle.

0

Nie no, to chyba dlatego, że jest już późno. @Dragon, to nie o to chodzi, że mi nie działa, bo już mi działa. Zastanawia mnie tylko jedno. cin>>liczba mam w while'u tak? tak! No to dlaczego ten cin>>liczba działa mi również wtedy, gdy jestem poza pętlą while? tzn. gdy wpiszę liczbę?

1

Gdy wpisałeś poprawnie w while to while się skończyl i przechodzisz do wprowadzenia po while.

0

Aha, czyli to chodzi o to, że w pętli while po prostu zostaje również wczytana poprawna wartość zmiennej liczba, czy tak? i gdy już tę poprawną wartość wklepię, to po prostu program przechodzi dalej do potęgi. Tak przynajmniej cie zrozumiałem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1