Zdravím všechny. Začínám v C++ a zajímalo by mě, když mám jednoduchý program s číselným vstupem,
např.
int cislo;
cin >> cislo;
jak napsat podmínku, která vypíše chybovou hlášku, jestliže zadám třeba písmeno.
Předem děkuji za odpověď.
Zdravím všechny. Začínám v C++ a zajímalo by mě, když mám jednoduchý program s číselným vstupem,
např.
int cislo;
cin >> cislo;
tmi napsal:
pri neparsovatelnem vstupu se nastavi chybovy priznak:cin >> cislo;
if( cin.fail() )cout << "Vole...
";
Ok díky moc. Takže by následující kód měl tímto způsobem fungovat.
int main()
{
int cislo;
cout << "Zadej cislo: ";
cin >> cislo;
if (cin.fail())
{
cin.clear();
cout << "\nCHYBA! Musis zadat CISLO!\n";
main();
}
else
{
Prevod (cislo);
}
return 0;
}
To Selfer : ! ne tak uplne:). abych se priznal, volani funkce main() z funkce main jsem jeste nevidel, a prijde mi to jako trochu divne. lepsiho vysledku bys dosahl budto pomoci "goto" na navesti pred "cout << "zadejte cislo: ";" (mimo jine se znovu nemusi inicializovat promenna cislo); nebo jeste lepe takto:
cout << "Zadejte cislo:\n";
cin >> cislo;
while( cin.fail() ){
cout << "Chyba, zadejte CISLO!\n";
cin.clear();
cin.ignore(256,'\n');/* tohle je dulezite!, protoze ta pismena
na vstupu stale jsou, a timto je odstranis. predpokladam ze vstup
nebude mit vice nez 256 znaku, ale pokud ano, tak se jen ta
chybova hlaska vypise vicekrat*/
cin >> cislo;
}
prevod(cislo);
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku