20.2.3 kysy_kentta
"Likainen työ" jätettiinkin aliohjelmalle kysy_kentta, joka
ei juurikaan ole sidoksissa kerho- ohjelmaan:
lukemine.3\naytto.cpp - kysy_kentta
/****************************************************************************
static int /* *
kysy_kentta( /* *
const char *viesti ,/* s Viesti joka tulee näytölle *
string &jono /* t Jono johon kentän vastaus luetaan. *
)
/*
** Funktiolla luetaan vastaus kenttään.
**
** Globaalit: POIS (jono, jolla syöttö katkaistaan)
** Syöttö: päätteeltä
** Tulostus: näyttöön
** Kutsuu: lue_jono_oletus
----------------------------------------------------------------------------*
{
char apu[80]; int paluu;
kopioi_jono(N_S(apu),jono.c_str());
paluu = lue_jono_oletus(viesti,OLET_ALKU,VAKANEN,apu,N_S(apu));
if ( paluu < OLETUS ) return 1;
if ( strcmp(apu,POIS) == 0 ) return 1;
poista_tyhjat(apu);
jono = apu;
return 0;
}
Tulosta ei lueta suoraan muuttujaan jono, jotta mahdollisessa
q - vastauksessa ei pilattaisi kentän alkuperäistä arvoa.
- Piirrä puumainen kuva siitä, mitä aliohjelmia/metodeja
metodista lisaa_uusi_jasen alkaen kutsutaan.