scanf-funktio
scanf-funktiolla voidaan syöttää tietoa ohjelman muuttujille:
scanf("tyypin muotoilu", muuttujan1_osoite, muuttujan2_osoite, ...);
tyypin muotoilu:
muotoilu |
tyyppi |
selitys |
---|---|---|
%c |
char |
yksi merkki |
%s |
char[] |
merkkijono (päättyy NULL-merkkiin) |
%d |
int |
kokonaisluku |
%i |
int |
kokonaisluku |
%u |
unsigned int |
etumerkitön kokonaisluku |
%l |
long |
pitkä kokonaisluku |
%f |
float |
reaaliluku |
%lf |
double |
kaksoistarkkuuden reaaliluku |
Huom! scanf ottaa aina parametrikseen muuttujan osoitteen ja siksi scanf()-funktion kanssa kannattaa olla hyvin varovainen, jos ohjelman käyttäjä antaa esimerkiksi lukua kysyttäessä kirjaimen, todennäköisesti ohjelma "kaatuu".
Yhden kokonaisluvun lukeminen käyttäjältä:
int Luku; printf("Anna jokin luku: "); scanf("%d", &Luku);
Sadan merkin merkkijonon lukeminen käyttäjältä:
char Merkkeja[101]; // viimeinen merkki, 101. merkki on varattu lopettavalle NULL-merkille. printf("Anna merkkejä. max 100: "); scanf("%s", Merkkeja);
scanf()-funktiolla voidaan myös kysellä useita asioita samalla kertaa:
scanf("%s %d", Merkkeja, &luku);
Merkkeja muuttujan eteen ei laiteta &-merkkiä, koska se on jo osoite merkkijonoon. (Taulukon nimi on aina osoitin taulukon alkuun)