Andmetüüpide konverteerimisfunktsioonid

Te võite ka lugeda kogu kasutaja poolt sisestatud rea mingisse puhvrisse (näiteks funktsiooniga gets()) ja seejärel üritada seda konverteerida soovitud formaati. Selleks võite kasutada funktsioone:

int atoi(const char *buffer);
long atol(const char *buffer);
float atof(const char *buffer);
long double _atold(const char *buffer);

Kõigi nende funktsioonide jaoks on vaja sisestada päisefail STDLIB.H translaatorikäsuga #include. Viimase kahe funktsiooni jaoks tuleb sellele lisaks sisestada ka veel päisefail MATH.H.

Need funktsioonid konverteerivad kuni sajast sümbolist koosneva stringi sellele vastavaks numbriks. Stringi lõpus peab olema null. Funktsioonid lõpetavad oma töö esimese sümboli juures, mida nad enam ei oska konverteerida, kusjuures selleks võib olla null või mingi teine mittenumbriline sümbol. Kui funktsioon ei suuda konverteerida puhvri sisu soovitud formaati, siis on funktsiooni väärtuseks null. Funktsioonid atof() ja _atold() eeldavad, et murdarv on sisestatud järgmises formaadis:

[<tühikud>] [<märk>] <täisarvulised kohad> . <murdarvulised kohad> [{ e | E | d | D} [märk] <aste>]

Kõik nimetatud funktsioonid ignoreerivad üleliigseid tühikuid.

Näiteprogrammis INTEGRAL kasutati veel funktsiooni fflush(). See funktsioon on seotud andmete lugemisega voogudest. Funktsioon fflush() tühjendab vastava voo seal salvestatud sümbolitest. Selles programmis on ta vajalik, sundimaks funktsiooni scanf() lugema klaviatuurilt uusi sümboleid.