Hirdetés

Új hozzászólás Aktív témák

  • Jester01

    veterán

    válasz amargo #115 üzenetére

    előnye, hogy lebegőpontos számokat is képes kezelni.. Nem kell hozzá átírkálni.

    Biztos? Ha jól látom az atoi függvényt hívod, abból hogy jön majd ki lebegőpontos? Egyéb problémák:
    * str[ 0 ] == '-' Ez a feltétel miért van a ciklusban? Sőt, miért van egyáltalán? Nem lehet negatív számot beadni?
    * Ha egész szám bekérése esetén pl. 3.3-at adok be akkor szerintem nem ad hibát.
    * Hibás számra (mondjuk amiben több pont van) szintén nem ad hibát.
    * isdigit függvény van ám ''gyárilag'' (és a pont az bizony nem digit -- így félrevezető a függvény neve)

    Az én verzióm soronként egy szám beolvasására a következő lenne:

    template <class Var>
    void getNum(Var &n, Var lob, Var hib)
    {
    while(!cin.eof())
    {
    string str;
    getline(cin, str);
    istringstream tmp(str);
    tmp >> n;
    if (!tmp.fail() && tmp.eof() && n <= hib && n >= lob) break;
    cerr << ''Invalid input'' << endl;
    }
    }

    Nyugodtan tessék belekötni ha van benne hiba.

    Jester

Új hozzászólás Aktív témák