scanf-funktio
scanf-funktiolla voidaan syöttää tietoa ohjelman muuttujille : Wiki Markup
No Format |
---|
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 esimerkiksi lukua kysyttäessä kirjaimen, todennäköisesti ohjelma "kaatuu". Wiki Markup
Yhden kokonaisluvun lukeminen käyttäjältä:
No Format |
---|
int Luku; |
...
printf("Anna jokin luku: "); |
...
scanf("%d", &Luku); |
...
Sadan merkin merkkijonon lukeminen käyttäjältä:
No Format |
---|
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:
No Format |
---|
scanf("%s %d", Merkkeja, &luku); |
Merkkeja muuttujan eteen ei laiteta &-merkkiä, koska se on jo osoite merkkijonoon. (Taulukon nimi on aina osoitin taulukon alkuun)