Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

scanf()-funktio

...

scanf-funktiolla

...

voidaan

...

syöttää

...

tietoa

...

ohjelman

...

muuttujille:

{
Code Block
}
scanf("muotoilumerkkijono", muuttujan1_osoite, muuttujan2_osoite, ...);
{code}

,

...

jossa

...

muotoilumerkkijono

...

muodostuu

...

seuraavista

...

(yhdestä

...

tai

...

useammasta):

muotoilu

tyyppi

selitys

%c

char/int

yksi merkki

<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="601b0c8f-10df-41c2-bd56-fa2dca29e400"><ac:plain-text-body><![CDATA[

%s

char[]

merkkijono (päättyy NULL-merkkiin)

]]></ac:plain-text-body></ac:structured-macro>

%d

int/char

kokonaisluku

%i

int/char

kokonaisluku

%u

unsigned int/unsigned char

etumerkitön kokonaisluku

%l

long

pitkä kokonaisluku

%f

float

reaaliluku

%lf

double

kaksoistarkkuuden reaaliluku

, ja muuttujanX_osoite annetaan muodossa:

Code Block

|| muotoilu || tyyppi || selitys ||
| %c | char/int | yksi merkki |
| %s | char\[\] | merkkijono (päättyy NULL-merkkiin) |
| %d | int/char | kokonaisluku |
| %i | int/char | kokonaisluku |
| %u | unsigned int/unsigned char | etumerkitön kokonaisluku |
| %l | long | pitkä kokonaisluku |
| %f | float | reaaliluku |
| %lf | double | kaksoistarkkuuden reaaliluku |
, ja _muuttujanX_osoite_ annetaan muodossa:
{code}
scanf(... , &Muuttuja); // &-merkin avulla saadaan muuttujan osoite luettua.
{code}

h4. Lukemisen päättyminen

Lukemisen päättyminen

scanf()-funktiossa

...

numeerisen

...

tiedon

...

(int,

...

float)

...

lukeminen

...

päättyy

...

merkkiin,

...

joka

...

ei

...

ole

...

luku

...

(float

...

hyväksyy

...

myös

...

desimaalipisteen).

...


Luvun

...

edessä

...

voi

...

olla

...

välilyöntejä,

...

sarkainmerkkejä

...

tai

...

rivinvaihtoja.

...


Jos

...

ohjelmassa

...

luetaan

...

merkkitietoa

...

(char),

...

ohjelma

...

tulkitsee

...

kaikki

...

näppäimenpainallukset

...

(myös

...

välilyönnit)

...

merkeiksi.

Esimerkkejä

Yhden kokonaisluvun lukeminen käyttäjältä:

Code Block


h3. Esimerkkejä

Yhden kokonaisluvun lukeminen käyttäjältä:
{code}
int Luku;
printf("Anna jokin luku: ");
scanf("%d", &Luku);
{code}

Sadan

...

merkin

...

merkkijonon

...

lukeminen

...

käyttäjältä:

{
Code Block
}
char Merkkeja[101]; // viimeinen merkki, 101. merkki on varattu lopettavalle NULL-merkille.
printf("Anna merkkejä. max 100: ");
scanf("%s", Merkkeja);
{code}

scanf()-funktiolla

...

voidaan

...

myös

...

kysellä

...

useita

...

asioita

...

samalla

...

kertaa:

{
Code Block
}
scanf("%s %d", Merkkeja, &luku);
{code}
_Merkkeja_\

Merkkeja-muuttujan

...

eteen

...

ei

...

laiteta

...

&-merkkiä,

...

koska

...

se

...

on

...

jo

...

osoite

...

merkkijonoon.

...

(Taulukon

...

nimi

...

on

...

aina

...

osoitin

...

taulukon

...

alkuun).

...

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",

...

ellei

...

käyttäjän

...

antamia

...

syötteitä

...

tarkasteta.