Tak sem si to vyřešil sám, omlouvám se za zbytečné vlákno.
Příspěvky odeslané z IP adresy 31.134.216.–
TnTSkill
TnTSkill
Ahoj, mám menší problém:
std::list<std::vector <MojeTrida> > seznam;
Přes seznam chci přistupovat ke konkrétním prvkům vektoru, jak se k nim dostanu ? Určitě nějak přes iterátor, na netu jsem bohužel nic nenašel. Jde jenom o syntaxi, jinak je mi všechno jasné. Díky za odpověď.
Hned ve funkci mocnina jsi použil (asi nevědomě) tzv. rekurzi. To znamená, že funkce volá sama sebe. Problém je že ta funkce volá další a to se nikdy nezastaví, překladač si pak postěžuje na něco jako stack overflow(ty funkce se nemohou volat do nekonečna).
Snad ti to pomůže.
nějak takhle :
int main()
{
showmenu();
int choice=0;
while (choice!=5)
{
while(!(cin >> choice))
{
cin.clear();
cin.ignore();
choice=6;
break;
}
switch(choice)
{
case 1 : cout << "\a\n";
break;
case 2 : report();
break;
case 3 : cout << "Vedouci byl pritomen cely den.\n";
break;
case 4 : comfort();
break;
case 5 :
continue;
default : cout << "To neni volba.\n";
}
showmenu();
}
cout << "Sbohem!\n";
return 0;
}
EDIT:
nevšiml jsem si vitaminova příspěvku (mimochodem ano, cin.fail() je na to lepší)
Napadá mě použít cin.clear():
while(cin >> choice)
{
// prikazy
}
cin.clear();
další podmínky ale musíš vyřešit přímo v cyklu.
EDIT:
takhle jsi to asi myslel:
int main()
{
showmenu();
int choice;
while (cin >> choice && choice != 5)
{
switch(choice)
{
case 1 : cout << "\a\n";
break;
case 2 : report();
break;
case 3 : cout << "Vedouci byl pritomen cely den.\n";
break;
case 4 : comfort();
break;
default : cout << "To neni volba.\n";
}
showmenu();
}
cin.clear();
cout << "Sbohem!\n";
return 0;
}