Zdravím, mám tento problém a nevím jak jej vyřešit, v C++ jsem začátečník.
když použiji např.
funkce()
cin >> cislo;
if (cislo <5)
prikazy;
else
funkce();
proste chci aby prikazy probehly pouze kdyz bude cislo mensi nez 5, jinak chci zadat cislo znova. Kdyz ale napisu treba +, tak se rekurze uz nezastavi a jede porad sama. pls poradte jak se to da osetrit. dekuji za pomoc
Fórum › C / C++
Rekurze běží pořád dokola při zadání symbolu (-*/+.,?§¨apod) míso čísla
To BTjacker :
cin >> cislo
if (isdigit(cislo)) { //isdigit() je fce z knihovny cctype a je pravdive, jestlize je cislo cislice 0 - 9
cout << "Nezadali jste ciselnou honotu, program se ukonci!";
return 0;
}
else if (cislo < 5) {
prikazy;
}
else {
funkce();
}
aby jsi mohl vyuzit isdigit(), nezapomen #include <cctype>
Nejspíš chápu jak jsi to myslel (i když je to trochu přehozené) ale nepomáhá to ani když to napíšu dobře, tohle můj problém neřeší.
ještě poddotaz: jak se jmenuje funkce z knihovny cctype která vrací true pokud je to číslo? Nemyslím jen 0-9, myslím "double"
Problém je v tom že pokud podmínka nesouhlasí,tak se funkce zopakuje(to samozřejmě má udělat), ale pokud jsem neznámé přiřadil jako hodnotu "+" spustí se funkce znova(to také má) ale už se neptá na další hodnotu, nýbrž vypisuje stále "špatná hodnota zadejte znovu" (vypisuje stále zn. že mám popsané celé okno a valí to samo:) přitom by se měla zeptat na novou hodnotu)
Děkuji za odpověď, snad jste pochopili z mého šíleného popisu co mě trápí :)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Spocitanie pri kazdom zadani z klavesnice — založil LuKeSkO
[E-mal] Při zadání nového záznamu do databáze odeslat mail — založil prema
Změna hodnoty čísla při použití fce sscanf() — založil HonzaHonza
Editace symbolu — založil Ondra
7segmentovka (zobrazování jiných symbolů) — založil Jirka
Moderátoři diskuze