Zdravím, můj problém spočívá v tom, že jsem napsal fci, která nefunguje, tak jak bych chtěl a já se nyní ptám, kde je problém. Dělá to, že když jako vztup dám několik písmen za sebou (např. aaaa), tak to vypíše chybovou hlášku tolikrát, kolik je tam zadaných písmen. Jinak fce má dělat to, že veme int a nic jinyho jako vztup, při neplatném vztupu vypíše chybovou hlášku a vyzve k opakování akce.
#3Franceq
Neviem či je to spravené najlepšie (lebo aj ja som začiatočník a akurát sa len učím funkcie). Neviem či si to chcel priamo takto, ale keď zadáš niečo iné ako číslo, tak ti to stále vypíše, že si zle zadal a máš zadať znova. A až keď zadáš číslo, tak ti vypíše že hodnota je to číslo.
#include <iostream>
int vztup_parametr (int a);
int main ()
{
using namespace std;
int vstup;
cout<<"Zadaj hodnotu: ";
cin>>vstup;
vztup_parametr(vstup);
system ("pause");
return 0;
}
int vztup_parametr (int a)
{
using namespace std;
while (!cin)
{
cin.clear();
while (cin.get() != '\n')
continue;
cout << "Chybny vztup, zadavejte znovu: ";
cin>>a;
}
cout<<"hodnota je: "<<a<<endl;
return a;
}
dik, uz jsem to vyresil....trochu jinak ale funguje to dobre, jediny co to nerozkouse je to, kdyz vztup jsou pismena a cisla dohromady ale co se da delat..:-)
#5Franceq
No lebo cin ti bude načítavať po biely znak. Takže keď zadáš prvé písmeno, tak ti hodí hlášku, že si zle zadal, tak zadaj znova. Lenže, keď prvé zadáš číslo a potom ďalšie čísla (samozrejme v rozsahu int) a medzi to dáš nejaké písmeno, tak program ti bude čítať len po to písmeno, keďže to nieje typu int. Napríklad 256j589 ti vypíše číslo 256. Keď chceš, aby ti opravovalo tie písmená (vypísalo, že si zadal zlú hodnotu, a aby si sa opravil), tak treba to spraviť cez pole. Potom si to "j " budeš vedieť opraviť.