Zdravím, mám tento kousek kódu u konzolové aplikace a nevím jak ošetřit to, aby uživatel mohl zadávat pouze čísla, když zadá písmenko nebo cokoli jiného, tak se program zblbne. Budu rád za jakýkoli návrh.
float cislo;
cin>>cislo;
Zdravím, mám tento kousek kódu u konzolové aplikace a nevím jak ošetřit to, aby uživatel mohl zadávat pouze čísla, když zadá písmenko nebo cokoli jiného, tak se program zblbne. Budu rád za jakýkoli návrh.
float cislo;
cin>>cislo;
To Lordest : Takto tedy ne. Copak nula není číslo?
Lepší je
if (std::cin.good())
{
// Je cislo
}
else
{
// neni cislo
std::cin.clear(); // vymazu chybovy priznak
}
To ondra.holub :
neviem ci som ta spravne pochopil, ale ak by trebalo aj nulu tak iba pridam logicky operator(||) cislo == 0 ..
ja som to tymto sposobom v pohode vyriesil..
ale v C++ som zatial lam, cize nemam v zaujme sa hadat, rad sa niecomu priucim..
To Lordest : No, řekl bych, žes tam předtím měl if (int(cislo)). Ale to je celkem jedno. Zkus si, co znamená podmínka if (0). Nula je číslo, ale ta podmínka určitě neprojde, protože nula je automaticky převoditelná na false. To samé platí i pro 0.0 (tedy pro float).
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku