x-kom hosting

[C++] Jak wymusić powrót do poprzednich poleceń?

VertoPL
utworzono
utworzono (edytowane)

Witam, chce zmusić, aby po "prosze o wpisanie cyfry" (skrypt poniżej) program wrócił nas przed cin, aby wpisać wartość ponownie i tak w nieskończoność, dopóki nie zostanie wpisana liczba. Ktoś wie jak to zrobić?

 

#include <iostream>

 

using namespace std;

 

int main()
{
    char znak;

 

    cout << "wpisz znak: ";

 

    cin >> znak;
{

    if ((znak > 47) && (znak < 58)) cout << "cyfra";
    else cout << "prosze o wpisanie cyfry" << endl;
}
    return 0;
}

 

pestka12
komentarz
komentarz
#include<iostream>
using namespace std;
int main()
{
int liczba;
blad:
cout<<"podaj liczbe:";cin>>liczba;
if((liczba>47)&&(liczba<58))
{
cout<<"Twoja cyfra to: "<<liczba;
}
else
{
goto blad;
}
}

Witam.

 

Wiem że zastosowanie goto nie jest najlepszą stroną pod względem programisty bo szczerze przyznam się że można tu użyć pętli.

Liczę że ten kod rozwiązał problem.

 

Miłego dnia/wieczora.

VertoPL
komentarz
komentarz
Dnia 7.03.2018 o 22:42, pestka12 napisał:

#include<iostream>
using namespace std;
int main()
{
int liczba;
blad:
cout<<"podaj liczbe:";cin>>liczba;
if((liczba>47)&&(liczba<58))
{
cout<<"Twoja cyfra to: "<<liczba;
}
else
{
goto blad;
}
}

Witam.

 

Wiem że zastosowanie goto nie jest najlepszą stroną pod względem programisty bo szczerze przyznam się że można tu użyć pętli.

Liczę że ten kod rozwiązał problem.

 

Miłego dnia/wieczora.

dzięki za pomoc, sam chciałem użyć goto, ale nie wiem czemu nie działało, w twoim kodzie był tylko jeden błąd, użyłeś int zamiast char, przez co 1=1, lecz przy użyciu char, liczba jest (tak mi sie wydaje) przerabiana na kod ascii, czyli 1=48. lecz teraz pojawia się problem mianowicie:

 

#include<iostream>

using namespace std;

int main()
{

char liczba;

 

cout<<"podaj liczbe. ";
start:
cin>>liczba;

if((liczba>47)&&(liczba<58))
{
cout<<"Twoja cyfra to: "<<liczba;
}
else
{
cout<<"prosze o wpisanie liczby. ";
goto start;
}
}

 

cytat z konsoli:

"podaj liczbe. 137
Twoja liczba to: 1"

 

a po wpisaniu kilku liter:

"podaj liczbe. test
prosze o wpisanie cyfry. prosze o wpisanie cyfry. prosze o wpisanie cyfry. prosze o wpisanie cyfry."

 

po wpisaniu cyfr i liter:

 

podaj liczbe. 12a
Twoja cyfra to: 1

 

podaj liczbe. a12
prosze o wpisanie cyfry. Twoja cyfra to: 1

 

czy wiesz o co chodzi? W poprzednim kodzie tego nie było.

pestka12
komentarz
komentarz

Napisz co dokładnie ten program ma robić bo wtedy będę w stanie rozwiązać problem a char przechowuje typ znak czyli np zdanie "C++" to wyświetli C a typ int przechowuje tylko liczby np: 1 , 2 , 3 , 4, 5 i tak dalej ale znaków i zdań nie przechowa wpisz sobie w internet typy zmiennych C++.

fafa16
komentarz
komentarz

Nie powinno operowac sie w takim przypadku funkcjami?'

Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!

Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.